> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 執行簡單工作範例

> 了解如何透過設定 XAsyncBlock 和工作回呼，使用 XAsyncRun 啟動自訂非同步工作，然後使用 XAsyncGetStatus 讀取傳回值。

本主題提供如何執行簡單使用者工作的範例。簡單工作可以使用 [XAsyncRun](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncrun.md) 函式啟動。
此函式會接受非同步區塊作為輸入，然後需要
以 functor 或 lambda 輸入的形式實作工作回呼。請記住，
非同步區塊會指定要使用的工作佇列以及選用的
完成回呼。

```c++ theme={null}
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](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncgetstatus.md) 傳回該值。在內部，`XAsyncRun`
具有簡單的非同步提供者設定，可處理將指定工作回呼加入佇列、
將非同步區塊中的完成回呼加入佇列，
以及此程序的其他狀態變更。這表示執行簡單的非同步工作時
不需要額外的程式碼，只要設定
非同步區塊並呼叫 `XAsyncRun` 即可。

## 參考 API 文件

* [XAsync (API 內容)](https://docs.xbox.com/zh-TW/reference/system/xasync/xasync_members.md)
  * 函式
    * [XAsyncRun](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncrun.md)
    * [XAsyncGetStatus](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncgetstatus.md)

## 另請參閱

[XAsync 程式庫概觀](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasync.md)

[設定非同步工作 (範例)](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task.md)

[執行 Microsoft Game Development Kit (GDK) API 工作 (範例)](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)

[XAsync](https://docs.xbox.com/zh-TW/reference/system/xasync/xasync_members.md)


## Related topics

- [用於非同步工作程式設計的 XAsync 程式庫](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/index.md)
- [設定非同步工作範例](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task.md)
- [執行 Microsoft Game Development Kit (GDK) API 工作](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)
- [XAsync 程式庫概觀](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasync.md)
- [XAsyncRun](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncrun.md)
