共用方式為


Windows CPI-C 非同步支援

發出呼叫且在呼叫完成之前不會重新取得控制權的程式無法執行任何其他作業。 這種作業稱為「封鎖」,不適合用來處理來自許多用戶端之多個要求的伺服器應用程式。 非同步呼叫完成會立即傳回初始呼叫,讓應用程式可以繼續執行其他進程。

Windows Common Programming Interface for Communications (CPI-C) 支援與非同步通訊有關,並包含下列呼叫和擴充功能:

Set_Processing_Mode (CPI-C)

Specify_Windows_Handle (CPI-C)

Wait_For_Conversation (CPI-C)

WinCPICExtractEvent

WinCPICIsBlocking

WinCPICSetBlockingHook

WinCPICSetEvent

WinCPICUnhookBlockingHook

Microsoft Windows 下的兩種方法可用於非同步動詞完成:

  • 使用視窗控制碼張貼訊息。

  • 等候 Win32 事件。

    傳統方法會使用張貼至視窗控制碼的訊息,以通知應用程式動詞完成。 這個方法用於舊版的產品中,以支援 Windows 3。x.

    使用訊息張貼的非同步支援會附加至 Set_Processing_Mode (CPI-C) 呼叫,並讓應用程式在視窗控制碼上收到呼叫完成的通知。 以 「WinAsyncCPIC」 作為字串呼叫 RegisterWindowsMessage 時,應用程式會傳遞視窗控制碼,讓應用程式收到呼叫完成的通知。 接著,應用程式會進行 CPI-C 呼叫,並在完成訊息時張貼至傳遞的視窗控制碼,通知應用程式呼叫已完成。

    除了非同步接收呼叫可在擱置時發出某些其他呼叫的非同步 接收 呼叫之外,交談隨時只能有一個不完整的作業。 如需使用非同步 接收 呼叫的詳細資訊,請參閱 使用非同步呼叫完成。 如果作業不完整,程式可以發出 Wait_For_Conversation 來測試其完成或 Cancel_Conversation 結束交談和不完整作業。

    主機整合伺服器支援使用 Win32 事件進行通知的第二種方法。

    如果使用 WinCPICSetEvent向交談註冊事件,應用程式可以呼叫 Win32 WaitForSingleObjectWaitForMultipleObjects 函式,以等候完成動詞的通知。

    Windows CPI-C 所需的唯一 Windows 擴充功能函式是初始化 (WinCPICStartup) 和終止 (WinCPICCleanup) 用途。 視您的應用程式而定,處理非同步動詞完成的其他 Windows 延伸模組可能很有用,但並非必要。 如需如何使用 Windows CPI-C 非同步呼叫和 Windows 延伸模組的範例,請參閱 非同步呼叫完成。 如需所有 Windows CPI-C 呼叫和擴充功能的完整描述,請參閱 Windows 環境的 CPI-C 呼叫擴充功能