This topic provides an example of how to dispatch a task queue. Dispatching a task queue is necessary for each manual port. How and
when the ports are dispatched determines the threaded and
concurrent behavior of the enqueued callbacks.
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; } } });
This example shows an extra thread being spawned to constantly dispatch
the completion port of the passed-in task queue until it’s
terminated.