Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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.