> ## 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.

# XAsyncCompletionRoutine

> XAsyncCompletionRoutine

# XAsyncCompletionRoutine

代表非同步呼叫的完成回呼。

## 語法

```cpp theme={null}
void XAsyncCompletionRoutine(  
         XAsyncBlock* asyncBlock  
)  
```

### 參數

*asyncBlock*   \_Inout\_\
類型：[XAsyncBlock\*](https://docs.xbox.com/zh-TW/reference/system/xasync/structs/xasyncblock.md)

完成回呼之 [XAsyncBlock](https://docs.xbox.com/zh-TW/reference/system/xasync/structs/xasyncblock.md) 的指標。

### 傳回值

類型：void

## 備註

您可以選擇性地指定 `XAsyncCompletionRoutine` 指標，為非同步呼叫提供*完成回呼*。完成回呼是在非同步呼叫完成後執行的回呼函式。您可以在非同步呼叫之 [XAsyncBlock](https://docs.xbox.com/zh-TW/reference/system/xasync/structs/xasyncblock.md) 結構的 `callback` 成員中指定 `XAsyncCompletionRoutine` 指標。

一般而言，完成回呼會在另一個執行緒上處理非同步呼叫的結果。完成回呼代表在非同步呼叫完成時叫用的回呼函式。回呼函式會接受 `XAsyncBlock` 指標，之後會用來取得回呼函式的結果。

如果您指定完成回呼，可以使用 [XAsyncGetStatus](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncgetstatus.md) 函式定期檢查完成回呼是否已完成，然後視需要使用 [XAsyncGetResult](https://docs.xbox.com/zh-TW/reference/system/xasyncprovider/functions/xasyncgetresult.md) 和 [XAsyncGetResultSize](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncgetresultsize.md) 從已完成的工作取得結果。

即使叫用 [XAsyncCancel](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasynccancel.md) 來取消非同步呼叫，仍會叫用完成回呼。

使用 [XAsyncGetStatus](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncgetstatus.md) 或完成回呼的 `Get\*Result` 方法來取得非同步呼叫的結果。如果非同步呼叫已取消，這些方法會傳回 `E_ABORT`。如需非同步提供者實作模式 (包括 `Get\*Result` 方法) 的詳細資訊，請參閱[非同步程式設計模型](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-programming-model.md)。

## 需求

**標頭：** XAsync.h

**程式庫：** xgameruntime.lib

**支援的平台：** Windows、XBOX One 系列主機和 XBOX Series 主機

## 概念文件

* [非同步程式設計模型](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-programming-model.md)

## 另請參閱

[XAsync 成員](https://docs.xbox.com/zh-TW/reference/system/xasync/xasync_members.md)\
[XAsyncGetStatus](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncgetstatus.md)\
[非同步程式設計模型](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-programming-model.md)


## Related topics

- [XAsyncCancel](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasynccancel.md)
- [非同步程式設計模型](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-programming-model.md)
- [XAsync (API 內容)](https://docs.xbox.com/zh-TW/reference/system/xasync/xasync_members.md)
- [XAsyncBlock](https://docs.xbox.com/zh-TW/reference/system/xasync/structs/xasyncblock.md)
- [XMEMALLOC_ROUTINE 回呼](https://docs.xbox.com/zh-TW/reference/system/xmem/functions/xmemalloc_routine.md)
