XAsync 库概述
XAsync 库提供用于定义异步任务及其回调的方法和数据。 此库中定义了主要的异步基元 XAsyncBlock, 这是所有异步任务所必需的。
除了异步块,此库还提供了启动基本异步调用、获取异步任务状态和尝试取消任务的方法。
XAsyncBlock
XAsyncBlock 是主要的异步基元,包含用于实施完成回调、向完成回调提供数据并选择要在其上运行的任务队列的成员。
异步块还包含系统在内部用于运行时行为的专用数据。 因此,此块不能在多个活动任务之间共享。 当异步调用处于活动状态时,系统将使用此数据来识别异步调用。
struct XAsyncBlock
{
/// <summary>
/// The queue to queue the call on.
/// </summary>
XTaskQueueHandle queue;
/// <summary>
/// Optional context pointer to pass to the callback.
/// </summary>
void* context;
/// <summary>
/// Optional callback that is invoked when the call completes.
/// </summary>
XAsyncCompletionRoutine* callback;
/// <summary>
/// Internal use only.
/// </summary>
unsigned char internal[sizeof(void*) * 4];
};