我可以帮您翻译成中文。这段内容是关于使用Delphi 5中的Indy 9组件来通过UDP与网络设备进行通信的。使用UDPServer组件,将其放入一个从TThread派生的类中。如果编写类似以下代码,则CPU使用率为100%。
在线等,谢谢!
在UDP读取事件中:
当我在while-do循环或OnUDPRead事件中使用Sleep函数时,没有任何变化。仍然会导致CPU使用率达到100%。
我的线程优先级为Normal。
我该如何解决这个问题?
在线等,谢谢!
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;
在UDP读取事件中:
try
// Processing the data here
except
PostThreadMessage(ThreadId, WM_UDPMSG, 0, 0);
end;
当我在while-do循环或OnUDPRead事件中使用Sleep函数时,没有任何变化。仍然会导致CPU使用率达到100%。
我的线程优先级为Normal。
我该如何解决这个问题?