DelphiXE8异步编程 delphixe8

Delphi XE8 Update1的更新说明,增加了Asynchronous ProgrammingLibrary,简称APL,即异步编程库,具体来说,就是在TComponent中增加了两个方法:BeginInvoke及EndInvoke,用这两个方法就可以进行异步编程了。
打开System.Classes单元,进一步查看这两个方法,会看到BeginInvoke方法重载几个版本:
functionBeginInvoke(const AProc: TProc; const AContext: TObject = nil):IAsyncResult; overload;
functionBeginInvoke(const AProc: TASyncProcedureEvent; const AContext:TObject = nil): IAsyncResult; overload;
functionBeginInvoke(const AFunc: TFunc; const AContext: TObject = nil):IAsyncResult; overload;
functionBeginInvoke(const AProc: TAsyncConstArrayProc; const Params: arrayof const; const AContext: TObject = nil): IAsyncResult;overload;
functionBeginInvoke(const AFunc: TAsyncConstArrayFunc; const Params: arrayof const; const AContext: TObject = nil): IAsyncResult;overload;
functionBeginInvoke(const AProc: TAsyncConstArrayProcedureEvent; constParams: array of const; const AContext: TObject = nil):IAsyncResult; overload;
functionBeginInvoke(const AFunc: TAsyncConstArrayFunctionEvent; constParams: array of const; const AContext: TObject = nil):IAsyncResult; overload;
functionBeginInvoke(const AFunc: TAsyncFunctionEvent; const AContext:TObject = nil): IAsyncResult; overload;
这些重载的版本,都返回接口IAsyncResult。参数是过程变量,也就是我们要异步执行的方法,按Help中的说明,执行一个异步调用,一定要用EndInvoke来结束异步调用。具体来说,就是用BeginInvoke方法返回的IAsyncResult来结束,EndInvoke(IAsyncResult)。
结合上面的内容,实作一个例子:

1.建立一个要异步调用的方法:
procedure TForm5.testAsync(const ASyncResult: IAsyncResult);
begin

sleep(1000*10);//这里实现具体的业务逻辑

EndInvoke(ASyncResult);//中止异步调用
end;
2.异步执行这个方法:
BeginInvoke(testAsync);
这个例子,我们在异步执行的方法中直接中止异步调用。

由于我还没Update1,只是读Xe8带的这两个方法,整理出来的,在xe8中测试还没有正确执行。另外,可以判定,Delphixe8就开始实现异步调用,只是没有做好,所以在Update1中才说明为新增加的内容。

此外,关于这个异步调用,完全是照搬C#中的实现方式。

DelphiXE8异步编程 delphixe8
后记:用Update1测试,也没有异步执行,有朋友说是不是Sleep的问题,我换成其他的逻辑,也没能通过。

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/76242.html

更多阅读

VBA编程中MsgBox函数怎么用 vba msgbox

VBA编程中MsgBox函数怎么用——简介Excel编程中的MsgBox函数用于输出一个对话框,该函数在编程调试以及输出结果方面具有极为重要的意义。下面小编就为大家讲解一下该函数的具体使用方法。VBA编程中MsgBox函数怎么用——方法/步骤

台达plc编程软件使用方法 精 台达plc编程实例

台达plc编程软件使用方法 精——简介 PLC,Programmable Logic Controller,可编程逻辑控制器,可以通过数字或模拟式输入、输出控制各种类型的机械或生产过程。下面我们就简单的共同探讨一下台达的PLC编程软件的使用方法。台达plc编程软

初学者怎样学习编程?

对于刚刚接触编程的人来说,怎样学习编程?学习编程要注意哪些方面?学习编程要从哪些方面着手才能更快进入编程世界?怎样做才是掌握了编程的要义呢?这一系列的问题都是一名编程初学者最关心的问题,今天,笔者从7个方面分析如何学习编程。初学

excel VBA编程入门教程 精 excel vba编程入门

上回看到“excel 编程入门教程”求助贴,不料被别人捷足先登。没想到今天又看到这个求助经验贴,而且又有优先评优支持当然要领取了。本人也算上个世纪的编程老鸟,虽然对于当前的主流技术不是非常精通,但是对于Excel VBA,还是略知一二的。

PLC编程语言的国际标准 plc常用的编程语言

PLC编程语言的国际标准IEC 61131是PLC的国际标准,1992~1995年发布了IEC 61131标准中的1 ~ 4 部分, 我国在1995 年11 月发布了GB/T15969-1/2/3/4(等同于IEC61131-1/2/3/4)。IEC 61131-3 广泛地应用PLC、DCS和工控机、“软件PLC”、数控

声明:《DelphiXE8异步编程 delphixe8》为网友痛快笑与哭分享!如侵犯到您的合法权益请联系我们删除