ThreadEx1의 개량형 버젼입니다.
기존에는 반복횟수를 카운트 하는 쓰레드 에서 표시까지 직접하였었는데, 컨트롤에 텍스트 표시하는데 걸리는 CPU의 부하 라던가 시간을 생각하다가 그냥 반복만 돌면 스피드가 얼마나 나올까 하는 생각에 제외시키기로 해보았습니다.
하지만 반복이 끝나기까지 마냥 기다리려면 좀 답답한 감이 있으니... 별도로 쓰레드를 생성하여 반복루프를 도는 작업쓰레드의 진행상황을 표시해 주는것으로 짜 보았습니다.
실제로 루프 카운트 는 AA() 에서 올라가고, BB()는 AA()의 현재 진행상황을 비동기로 알려주고 있습니다.
예상했던 대로 엄청난 스피드를 보여주더군요^^
120000000 번의 반복을 10초도 안걸려서 끝내버렸습니다.
(Core 2 Duo T7300, 4GB DDR2, Win7, .NET2.0)
쓰레드2의 반복(표시)횟수는 쓰레드1과 동기화를 하지 않고 있으며, 쓰레드1이 끝날 때 같이 끝나게 되어있으므로 매번 카운트 횟수는 다르게 나옵니다.
기존에는 모든 반복카운트에 표시를 해주었다면...
이번에는 중간중간 빼먹어 가면서 표시를 해 주고 있다고 보면 됩니다.