本周早些时候,我可以使用Delphi UDPClient(帮助)。现在我需要在一个单独的单元和自己的线程中运行客户端过程。是否有一个简单的例子或至少有人可以共享的伪代码?我要避免在线程中使用TForm,因为我将从线程中获取返回的数据并显示到TMemo字段中。我在完全定义我的Type IdUPDClient时遇到了具体问题..
答案 0 :(得分:1)
您可以使用TTask在单独的线程中运行某些代码,添加以使用System.Threading。
TTask.run(procedure
var UDPClient : TIdUDPClient;
begin
UDPClient := TIdUDPClient.Create(self);
UDPClient.Host := 'put your host';
UDPClient.Port := 0;//PUT YOUR PORT
UDPClient.ReceiveTimeout := 5000;
UDPClient.BufferSize := 8192;
UDPClient.Active := True;
while True do //put your condition here
begin
//some code
//When you need to update the screen you should syncronize
TThread.Synchronize(TThread.CurrentThread, procedure
begin
form1.Memo1.Text := 'update';
end);
end;
UDPClient.DisposeOf;
end);