Exemple d'exécution d'une tâche d'API du Microsoft Game Development Kit
Exemple d’exécution d’une tâche d’API du Microsoft Game Development Kit
Cette rubrique fournit un exemple d’exécution d’une tâche d’API du Microsoft Game Development Kit (GDK). Les fonctions d’API asynchrones du Microsoft Game Development Kit (GDK) implémentent le rappel de travail en interne. Toutefois, celui-ci s’exécute toujours selon les directives de la file d’attente de tâches spécifiée dans le
bloc asynchrone. L’exécution de ces méthodes nécessite le bloc asynchrone et
les paramètres requis par l’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;}
Ce code ne diffère pas beaucoup du code permettant d’exécuter des tâches génériques.
Au lieu d’utiliser XAsyncRun avec un rappel de travail, vous appelez
l’API que vous souhaitez utiliser. Le bloc asynchrone est configuré
de la même manière. La différence est que XUserAddAsync
renvoie des données à récupérer à partir de l’appel effectué dans le
rappel d’achèvement avec XUserAddResult.