デルファイD10.X並列ライブラリPPLの先物をプログラミング

デルファイD10.X並列プログラミングライブラリPPLシリーズフューチャーズ

RTLでのデルファイ(ランタイム)は、アプリケーションが効果的にクロスプラットフォームアプリケーションにおける並列タスクで複数のCPUランニングの電源を使用することができるように、並列プログラミングライブラリ(ライブラリのプログラミングPPL --parallel)を提供します。
先物は、プロセスが他のタスクに焦点を当て、その後、所望の位置に、このプロセスの結果を得ることができます。IFutureは、実行するコードのブロックの優先順位を確立することを可能にし、必要なときに、まだ結果を返します。

先物説明

将来は、並列スレッドで動作することができる機能を受け入れ、そしてインターフェイスを返す、結果を得るために使用されるインターフェイスは、プログラム内の位置を希望しました。

将来IFutureメソッドは、型T定義された変数のインスタンスを返します。Tは、並列スレッドの戻り型で実行されるパラメータのタイプの関数を表します。

以下は、異なるオーバーロードされたメソッドです。

class function Future<T>(Sender: TObject; Event: TFunctionEvent<T>): IFuture<T>; overload; static; inline;
class function Future<T>(Sender: TObject; Event: TFunctionEvent<T>; APool: TThreadPool): IFuture<T>; overload; static; inline;
class function Future<T>(const Func: TFunc<T>): IFuture<T>; overload; static; inline;
class function Future<T>(const Func: TFunc<T>; APool: TThreadPool): IFuture<T>; overload; static; inline;

先物のデモ

先物を使用する場合、まだ計算されていない場合は、必要に応じて、それが完了するまでブロックされる場合、この値を受け取ります。

プレゼンテーションを制御するために使用します

ここに画像を挿入説明
2つだけのコントロールボタンは、計算を開始するための1つが、別の計算結果を得るために使用されます。

付加部

まず、私たちは、PPLライブラリを参照する必要があります。

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

変数を設定します

  public
    { Public declarations }
    FutureString: IFuture<string>;

増加したイベントを処理する二つのボタン

{=======================  Future 演示  ========================================}
procedure TForm5.Button4Click(Sender: TObject);
begin
  FutureString:= TTask.Future<string>(
    function:string
    begin
      {暂停一段时间,模拟需要计算的处理时间 }
      Sleep(3000);
      Result:='Hello ' + Random(42).ToString;
  end);
end;

procedure TForm5.Button5Click(Sender: TObject);
begin
  Button5.Text := FutureString.Value;
end;
{=======================  Future 演示  ========================================}

デモンストレーション効果

ここに画像を挿入説明
[スタート]ボタンをクリックし、3秒以内に結果を得るために、クリックし、我々は3秒でプログラムが終了するまでブロックします、乱数未満42を返します。

特定の使用を参照してください

並列プログラミングライブラリ使用して
並列ライブラリPPLプログラミングTTask
並列プログラミングライブラリPPLのTParallel.Forを

演示Demo

コードに対応するこのシリーズのダウンロードデモ。D10.3.2エディタを使用してください。
デルファイD10.Xは、並列プログラミングライブラリデモを使用しました


私のお店を訪問する歓迎:(https://shop63778938.taobao.com/)
ショップも他の態様は、技術サポート、カスタム開発をDELPHI提供しています。

今店に見えます

上記の情報は、あなたにとって有用な、次の行に、賞賛のコレクションを喜ば

公開された29元の記事 ウォン称賛44 ビュー60000 +

おすすめ

転載: blog.csdn.net/tanqth/article/details/104554661