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,orm

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;it

 

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

前面說了新的並行庫只是爲了跨平臺,若是隻基於WINDOWS編程,仍然能夠使用TTread類,執行效率,留待諸位實測了。

相關文章
相關標籤/搜索