쓰레드가 왜 CPU의 사용률을 전부 잡아 먹는지 궁금해서  
올려 봅니다.
어케 해야 하남요.
...
  StartTime := GetTickCount;
  Interval := 1000;
  ActiveTimer := True;
...
procedure TTimerThread.Execute;
begin
  while (not Terminated) do
  begin
    if ActiveTimer then
      if ((GetTickCount - StartTime) > Interval) then
        DoOnTimeout;        
  end;
end;
procedure DoOnTimeout;
begin
  // 희안한 짓이지만, 100% 사용률 테스트를 위해서...
  // CPU 사용률을 줄이는 방법 없나여?
  // Sleep 주는 거 말고
  ActiveTimer := False;
  StartTime := GetTickCount;
  Interval := Interval * 2;
  ActiveTimer := True;
end;
			 
	
	
    
    
	
	
    
    
    
Execute안에 Sleep을 적절히 사용하시면 될 것 같은데 코드의 의도를 잘 모르겠네여..
하창호 wrote:
> 쓰레드가 왜 CPU의 사용률을 전부 잡아 먹는지 궁금해서
> 올려 봅니다.
> 어케 해야 하남요.
>
>
> ...
> StartTime := GetTickCount;
> Interval := 1000;
> ActiveTimer := True;
> ...
>
> procedure TTimerThread.Execute;
> begin
> while (not Terminated) do
> begin
> if ActiveTimer then
> if ((GetTickCount - StartTime) > Interval) then
> DoOnTimeout;
> end;
> end;
>
> procedure DoOnTimeout;
> begin
> // 희안한 짓이지만, 100% 사용률 테스트를 위해서...
> // CPU 사용률을 줄이는 방법 없나여?
> // Sleep 주는 거 말고
> ActiveTimer := False;
>
> StartTime := GetTickCount;
> Interval := Interval * 2;
> ActiveTimer := True;
> end;