运行简单任务示例

本主题提供有关如何运行简单用户任务的示例。 可使用 XAsyncRun 函数启动简单任务。 此函数将异步块用作输入,然后要求将工作回调实现为 functor 或 lambda 输入。 请记住,异步块指定要使用的任务队列和可选的完成回调。

XAsyncBlock* async = new XAsyncBlock{};
async->queue = taskQueue;
async->context = contextData;
async->callback = 
    [](XAsyncBlock* async)
    {
        // The optional completion callback.
        delete async;
    }

XAsyncRun(async,
    [](XAsyncBlock* async)->HRESULT
    {
        // The work callback is implemented here.
        return S_OK;
    });

此示例使用 XAsyncRun 启动自定义的简单异步任务。 异步块包含要使用的任务队列和完成回调。 XAsyncRun 需要工作回调,而且它有一个返回值。 此返回值在调用 XAsyncGetStatus 之后返回。 XAsyncRun 内部有一个简单的异步提供程序设置,可用于处理指定工作回调的排队、异步块中完成回调的排队以及该进程的其他状态更改。 这意味着运行简单异步任务不需要更多的代码 — 只需设置异步块并调用 XAsyncRun

另请参阅

XAsync 库概述

设置异步任务(示例)

运行 Microsoft 游戏开发工具包 (GDK) API 任务(示例)

XAsync