Exemplo de execução de tarefa de API do Microsoft Game Development Kit
Exemplo de execução de tarefa de API do Microsoft Game Development Kit
Este tópico fornece um exemplo de como executar uma tarefa de API do Microsoft Game Development Kit (GDK). As funções assíncronas de API do Microsoft Game Development Kit (GDK) implementam internamente o retorno de chamada de trabalho. No entanto, ele ainda é executado conforme determinado pela fila de tarefas especificada no
bloco assíncrono. A execução desses métodos requer o bloco assíncrono e
quaisquer parâmetros necessários para a 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;}
Esse código não difere muito do código para executar tarefas genéricas.
Em vez de usar XAsyncRun com um retorno de chamada de trabalho, você chama
a API que deseja usar. O bloco assíncrono é configurado
da mesma forma. A diferença é que XUserAddAsync
tem dados a serem recuperados da chamada, o que é feito no
retorno de chamada de conclusão com XUserAddResult.