タスク キューのディスパッチの例
このトピックでは、タスク キューをディスパッチする方法の例を示します。 タスク キューのディスパッチは、手動ポートごとに必要です。 ポートがいつ、どのようにディスパッチされるによって、キューに入っているコールバックのスレッド動作および並列動作が決まります。
std::thread dispatherThread = std::thread(
[taskQueue]()
{
while (true)
{
bool processed = XTaskQueueDispatch(taskQueue,
XTaskQueuePort::Completion, INFINITE);
if (!processed)
{
// The task queue has been terminated, so return.
break;
}
}
});
この例では、タスク キューが終了するまで、渡されたタスク キューの完了ポートを継続的にディスパッチするため、追加のスレッドが生成されます。