是否德尔福VCL/RTL有类似的AutoThread类?即,类的每一个方法从例如衍生TAutoThread类将然后 AUTOMATICALLY 在单独的线程中执行,而无需编写任何线程特定代码。

最佳答案

使用 Anonymous thread 有可能使作为AutoThread类类似的东西。

只是通过一个匿名的程序并调用线程。

var
  aThread : TThread;
...
aThread :=
  TThread.CreateAnonymousThread(
    procedure
    begin
       // your code to execute in a separate thread here.
    end
  );
aThread.Start; // start thread and it will execute and self terminate

注意,这与从另一个类派生的一个类无关,但是结果是相似的。您不必编写任何线程特定的代码。当然,您将必须遵循正常的线程规则。

如果你需要得到通知时,线程完成,启动线程之前定义的OnTerminate方法。这将在主线程中执行。
aThread.OnTerminate := Self.ThreadFinishedNotification;

10-05 22:43