SwitchToThread 라는 API 함수를 사용해 보세요. 아마 100,000 이상 올라갈 겁니다.
물론 이것도 CPU 점유율이 100% 갑니다. 하지만 우선도가 낮는 다른 Thread에도 제어권을 넘기기 때문에
Sleep(0)로 처럼 프로세서가 얼어버리는 현상이 발생하지는 않습니다.
김질문 님이 쓰신 글 :
: 스레드 내에서 while 한번 돌 때마다 변수:=변수+1 를 해주려고 합니다. 최대한 빨리 더해지도록....
: 메인폼에서는 버튼을 누르면 그 변수값을 표시 해주려고 하고요.
: 근데 sleep 이나 waitforsingleobject를 사용하면 최소 while 한번 순환에 1ms 씩 딜레이가 들어가서
: 변수가 1초에 최대 1000까지밖에 안올라갑니다. 점유율은 낮게 점유하면서 할수 있는 한 빨리 수행하고 싶은데...
:
: 그렇다고해서 sleep이나 waitforsingleobject를 없애면 점유율이 100까지 올라가고요....
:
: 딜레이를 빼면 될 일을 가지고 제가 쓸데 없는 걱정을 하는건지,
: 아니면 더 빨리 돌리는 방법이 있는데 제가 모르고 있는건지.....
:
: 이상한 질문을 읽어주셔서 감사합니다....
|