Q&A

  • Queue에 있는 자료를 일어서 처리하고 싶어여..
음냐



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;



이렇게 하거든여



이 방법 말고 다른방법 있으면 알려주세여...



부탁드립니다...



음 처리하고자 하는 방법은 알겠는데 어떻게 해야 할지..(이방법 말고)..

0  COMMENTS