delphi 使用动态数组和并行编程库  
官方Delphi 学习QQ群: 682628230(三千人)\n
频道

delphi 使用动态数组和并行编程库


XE7 中引入的并行编程库是最受期待的 Delphi 和 C++Builder RTL 内置库之一,至少对我而言是这样。这是 Delphi XE7 中引入的另一个不错的功能。


这是代码。


uses System.Threading,System.SyncObjs;


procedure TFormThreading.Button1Click(Sender: TObject);

var

  tasks: array of ITask;

  value: Integer;

begin

  value := 0;

  tasks := [

  TTask.Create(procedure

    begin

      sleep(1000); // 1 seconds

      TInterlocked.Add(value, 1000);

    end).Start,


  TTask.Create(procedure

    begin

      sleep(3000); // 3 seconds

      TInterlocked.Add(value, 3000);

    end).Start,


  TTask.Create(procedure

    begin

      sleep(5000); // 5 seconds

      TInterlocked.Add(value, 5000);

    end).Start

    ];


  TTask.WaitForAll(tasks);

  ShowMessage('All done: ' + value.ToString);

end;


此代码配置并启动 3 个并行任务并等待它们的完成。然后使用 ShowMessage 显示结果。
这段代码需要 5 秒才能执行,因为第一秒有 3 个任务在运行,从第二秒到第三秒有 2 个任务在运行,而最后 2 秒只有一个任务在运行。所有的内部线程都由一个线程池管理。[嘿!这意味着并行化!]



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.27623414993286 seconds