非同期タスクの設定の例
このトピックでは、非同期タスクを設定する方法の例を紹介します。 実行する非同期タスクのための XAsyncBlock を設定します。 これらの非同期ブロックは、複数のアクティブな非同期タスク間で共有することはできません。 ただし、元のタスクが終了した後、それらを別のタスクに再利用できます。 単純なパターンとしては、各呼び出しに対してブロックを動的に割り当て、完了コールバックで呼び出しが終了したら解放します。
XAsyncBlock* async = new XAsyncBlock{};
async->queue = taskQueue;
async->context = contextData;
async->callback =
[](XAsyncBlock* async)
{
// The optional completion callback.
delete async;
}
完了コールバックのパラメーターは、以前に作成された非同期ブロックです。 こうすることで、必要に応じてコンテキストにアクセスして、入力と出力の両方で正しい型にキャストすることができます。