HRESULT CustomProviderMethodAsync(XAsyncBlock* async){ // Set up the context for your method. void* context; HRESULT hr = XAsyncBegin(async, context, CustomProviderMethodAsync, __FUNCTION__, [](XAsyncOp op, const XAsyncProviderData* providerData) { // Provider cases are handled here. return S_OK; }); return hr;}
この例では、Microsoft Game Development Kit (GDK) のすべての非同期メソッドがどのように実装されているかを示しており、プロバイダーを再利用できるようにしています。DoWork ケースが非常に具体的な場合は、そのまま特殊化された非同期関数になります。汎用にするには、DoWork ケースを何らかの方法でカスタマイズできるようにします。