Delphi XE10 RTL - PPL - TTask

时间:2020-06-23 15:16:20   收藏:0   阅读:64

Delphi XE10  RTL - PPL - TTask

并行编程库(PPL --Parallel Programming Library) ,让您的应用程序可以在跨平台应用中有效的使用多个CPU并行运行任务的能力。

TTask(并行运行多个任务) 说明:

Delphi 示例:
// 主线程管理任务队列,并从线程池中分配线程来完成任务。该线程池具有多少线程数,取决于设备可用CPU数量。

uses
System.Threading; // 需要引用PPL库

//定义两个执行过程:
procedure NoTask; // 不使用任务的情况
procedure ApplyTask; // 使用任务的情况

procedure TForm1.ApplyTask;
var
  lValue: Integer;
begin
  Label1.Text := ‘使用Task:--‘;
  TTask.Run(
    procedure
    begin
      Sleep(2000);   { 暂停一段时间,模拟需要计算的处理时间 }
      lValue := Random(100);
      TThread.Synchronize(nil,
        procedure
        begin
          Label1.Text := ‘使用Task:‘ + lValue.ToString;
        end);
    end);
end;

procedure TForm1.NoTask;
var
  lValue: Integer;
begin
  Label1.Text := ‘未用Task--‘;
{ 暂停一段时间,模拟需要计算的处理时间 }
  Sleep(3000);
  lValue := Random(100);
  Label1.Text := ‘未用Task:‘ + lValue.ToString;
end;

//创建按钮事件,当CheckBox1选中时执行任务,未选择时使用常用方式执行。
procedure TForm1.Button1Click(Sender: TObject);
begin
  if CheckBox1.IsChecked then
    ApplyTask
  else
    NoTask;
end;

  

创建时间:2020.06.23  更新时间:

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!