Delphi 5 で Indy 9 を使用しています。私のアプリケーションでは、UDP 経由でネットワーク デバイスと通信したいと考えています。だから私はUDPServerコンプを使います。TThread から派生したクラスで。次のようなコードを書くと、CPU 使用率は 100% になります。
スレッドで:
while not terminated do begin
if GetMessage(Msg, 0, 0, 0) then begin
if Msg.message = WM_UDPMSG then
Break
else
DispatchMessage(Msg);
end;
end;
および OnUDPRead イベント:
try
// Processing the data here
except
PostThreadMessage(ThreadId, WM_UDPMSG, 0, 0);
end;
while-do ループまたは OnUDPRead イベントで Sleep 関数を使用しても変化はありません。それでもCPU使用率は100%です。
私のスレッドの優先度は通常です。
どうすれば問題を解決できますか?