如何使用TIdNotify

CMB*_*CMB 2 delphi multithreading indy delphi-2010

我正在尝试使用Indy在Delphi 2010中编写一个线程化应用程序.这两个对我来说都是新的,我正在努力同步Vcl.我已经阅读了有关使用Critical Sections,TThread.Synchronize,TIdNotify等同步Vcl的信息.我想看一个如何使用TIdnotify的示例.在我的情况下,我试图从一个线程更新TreeView.我搜索过群组/论坛,但没有成功.任何例子都非常感谢.TIA

Arj*_*pek 9

type
  TMyNotify = class(TidNotify)
  private
    FMyData: string;
  protected
    procedure DoNotify; override;
  end;

procedure TMyNotify.DoNotify;
begin
  FormMain.TreeView1.Items.Add(nil, FMyData);
end;
Run Code Online (Sandbox Code Playgroud)

在你的线程中:

var
  MyNotify: TMyNotify;
begin
  MyNotify := TMyNotify.Create;
  MyNotify.FMyData := 'A new node';
  MyNotify.Notify;
Run Code Online (Sandbox Code Playgroud)