Dispatch task queue example

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.

See also

XTaskQueue library overview

Create task queue (example)

Clean up task queue (example)

Designing the task queue

XTaskQueue