Run Microsoft Game Development Kit API task example
Run Microsoft Game Development Kit API task example
This topic provides an example of how to run a Microsoft Game Development Kit (GDK) API task. Async Microsoft Game Development Kit (GDK) API functions internally implement the work callback. However, it still runs as directed by the task queue as specified in the
async block. Running these methods requires the async block and
whatever parameters are needed for the API.
// Set up the async block and completion callback.XAsyncBlock* async = new XAsyncBlock{};async->queue = taskQueue;async->context = nullptr;async->callback = [](XAsyncBlock* async){ XUserHandle newUser = nullptr; HRESULT result = XUserAddResult(async, &newUser); // Handle the completion callback. delete async;};// Start the async call.HRESULT hr = XUserAddAsync(XUserAddOptions::None, async);if (FAILED(hr)){ delete async;}
This code doesn’t differ much from the code to run generic tasks.
Instead of using XAsyncRun with a work callback, you call
into the API that you want to use. The async block is set up
in the same way. The difference there is that XUserAddAsync
has data to be retrieved from the call that’s done in the
completion callback with XUserAddResult.