WinAsyncAPPCEx

WinAsyncAPPCEx 函数为所有 APPC 谓词提供异步入口点。 使用此函数而不是谓词的阻塞版本,以允许使用事件在同一线程上处理多个会话。 此谓词仅在 Microsoft Windows 上受支持,并且使用 Win32® 事件。

语法

  
    HANDLE WINAPI WinAsyncAPPCEx(   
HANDLEevent_handle,  
longlpVcb);  

参数

event_handle
用于使用 Win32 事件的事件通知的句柄。

lpVcb
指向谓词控件块的指针。

返回值

返回值指定异步解析请求是否成功。 如果函数成功,则返回值为异步任务句柄。 如果函数不成功,则返回零。

当此函数返回成功值时,这并不表示 APPC 调用最终将成功返回。 它仅指示 APPC 库可以尝试使用事件进行通知异步调用 APPC。

注解

此函数适用于 Win32 API 中的 WaitForSingleObjectWaitForMultipleObjects 。 Microsoft 平台 SDK 文档的“参考”部分介绍了这些函数。

有关如何在多线程 TP 中使用此谓词的示例,请参阅多线程发送和接收示例 TP (MRCV。C、MSEND。C 和 MSENDRCV。C 位于 SDK 中包含的 MSENDRCV 文件夹中) 。

可在基本对话中使用的可阻止的 APPC 谓词如下所示:

注意

上一段的例外情况是 RECEIVE_AND_POSTMC_RECEIVE_AND_POSTRECEIVE_AND_WAITMC_RECEIVE_AND_WAIT

注意

为了允许完全使用异步支持,异步发布的 RECEIVE_AND_WAITMC_RECEIVE_AND_WAIT 谓词已更改为像 RECEIVE_AND_POSTMC_RECEIVE_AND_POST 谓词。 具体而言,尽管其中一个谓词的异步版本未完成,但可以在同一会话中发出以下谓词:

注意

这允许应用程序(尤其是服务器应用程序)使用异步 RECEIVE_AND_WAITMC_RECEIVE_AND_WAIT 来接收数据。 虽然 RECEIVE_AND_POSTMC_RECEIVE_AND_POSTRECEIVE_AND_WAITMC_RECEIVE_AND_WAIT 未完成,但它仍然可以使用 SEND_ERRORMC_SEND_ERRORREQUEST_TO_SENDMC_REQUEST_TO_SEND。 建议使用此功能实现完全异步支持,特别是支持同一线程上的多个会话。

异步操作完成后,将通过事件的信号通知应用程序。 发出事件信号后,检查谓词控制块中的 APPC 主返回代码和辅助返回代码,了解是否存在任何错误情况。