DELPHI XE7 新的並行庫


DELPHI XE7 的新功能列表里面增加了並行庫System.Threading, System.SyncObjs。

為什么要增加新的並行庫?

還是為了跨平台。以前要並行編程只能從TThread類繼承進行多線程處理,大家知道TThread類是從WINDOWS的線程API封裝起來的,它封裝的是WINDOWS的多線程的東西,是不能脫離WINDOWS的,當然是不能跨平台的。DELPHI現在走的是原生跨平台的道路,一切DELPHI的基礎類庫都要從只支持WINDOWS改為支持多平台,這是一個龐大而緩慢的工程,近年,大家都看到了易博龍在這方面的努力,在跨平台方面DELPHI已經做出了許多令人驚喜的改進,DELPHI已經不僅僅同WINDOWS捆綁在一起的開發工具。

連同DELPHI新版本提供的一些新語法:泛型,匿名函數。。。。。。

下面是官方的演示代碼:

千記:uses System.Threading, System.SyncObjs;

procedure TForm1.Button1Click(Sender: TObject);
var
tasks: array of ITask;
value: Integer;
begin
value := 0;
tasks := [
TTask.Create(procedure
begin
sleep(1000);
TInterlocked.Add(value, 1000);
end).Start,

TTask.Create(procedure
begin
sleep(1000);
TInterlocked.Add(value, 3000);
end).Start,

TTask.Create(procedure
begin
sleep(1000);
TInterlocked.Add(value, 5000);
end).Start
];

TTask.WaitForAll(tasks);
ShowMessage('All done: ' + value.ToString);
end;

 

同原來的TTread相比,誰優誰劣?

前面說了新的並行庫只是為了跨平台,如果只基於WINDOWS編程,仍然可以使用TTread類,執行效率,留待諸位實測了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM