UDPClient在单独的线程Delphi中

时间:2017-04-26 16:54:19

标签: multithreading delphi udpclient

本周早些时候,我可以使用Delphi UDPClient(帮助)。现在我需要在一个单独的单元和自己的线程中运行客户端过程。是否有一个简单的例子或至少有人可以共享的伪代码?我要避免在线程中使用TForm,因为我将从线程中获取返回的数据并显示到TMemo字段中。我在完全定义我的Type IdUPDClient时遇到了具体问题..

1 个答案:

答案 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);