음냐
Queue에 있는 자료를 꺼내와서 처리하는 프로그램인데
이것을 그냥 쓰레드에서 처리할려고 하는데
이쓰레드가 cpu 사용율이 100%라서 처리가 안되여
그리고 sleep() 을 주라는 답변은 감사히 잘 받았는데
이렇게 처리하면 이간 sleep 에 정의한 시간동안 공백이 생기 잖아여
그러면 안되거든여 약 1초에 100건 정도 처리를 한다고 할겨우..
procedure TThreadClient.Execute;
begin
while (not Terminated) do
begin
Application.ProcessMessages;
//2-2. Queue에서 가 있는 경우.
// QueueList 를 동기화 한다(가져오기).
Proc_CriticalSection := TCriticalSection.Create;
Proc_CriticalSection.Acquire;
try
if QueueList.Count > 0 then
begin
ls_popstr := queue(QueueList.Items[0]^).front; //Queue에서 가져옴.
QueueList.Delete(0); //읽은 것은 메모리에서 삭제 한다.
처리.....
end;
finally
Proc_CriticalSection.Release;
end;
end;
end;
이렇게 하거든여
이 방법 말고 다른방법 있으면 알려주세여...
부탁드립니다...
음 처리하고자 하는 방법은 알겠는데 어떻게 해야 할지..(이방법 말고)..