delphiXE关于线程和多线程、线程的同步与异步执行

delphiXE关于线程和多线程、线程的同步与异步执行

一、最好的参照案例

{$BDS}\source\fmx\FMX.Helpers.Android.pas

如下四个独立方法:

type
  TMethodCallback = procedure of object;
  TCallBack = reference to procedure;

procedure CallInUIThread(AMethod: TMethodCallback); overload;  //:在UI中调用线程并回调某个对象或类的事件:在自己的单元文件重新实现
procedure CallInUIThread(AMethod: TCallBack); overload; //:在UI中调用线程并回调某个匿名过程:在自己的单元文件重新实现
procedure CallInUIThreadAndWaitFinishing(AMethod: TMethodCallback); overload; //:在UI中调用线程且等待其结束并回调某个对象或类的事件:在自己的单元文件重新实现
procedure CallInUIThreadAndWaitFinishing(AMethod: TCallBack); overload; //:在UI中调用线程且等待其结束并回调某个匿名过程:在自己的单元文件重新实现

implementation

use FMX.Types, System.Generics.Collections,
  System.SyncObjs, System.Rtti, System.Classes, FMX.Consts;

var
    //ActiveJavaRunnables: TThreadList<TRunnable>;  //改为:
    ActiveThreadsRunnables: TThreadList<TRunnable>;  //:活动的能运行的线程列表:uses System.Generics.Collections


initialization
  ActiveJavaRunnables := TThreadList<TRunnable>.Create;

finalization
  ActiveJavaRunnables.DisposeOf;
end.

二、将其稍作修改,变成你自己的通用线程执行类

发布了80 篇原创文章 · 获赞 9 · 访问量 9845

猜你喜欢

转载自blog.csdn.net/pulledup/article/details/105617706