共用方式為


WinAPPCCancelBlockingCall

WinAPPCCancelBlockingCall函式會取消其執行緒的任何未處理封鎖作業。 取消任何未完成的封鎖呼叫都會產生 WAPPCCANCEL 的錯誤碼。

語法

  
BOOL WINAPI WinAPPCCancelBlockingCall(  
void  
);  
  

傳回值

傳回值會指定取消要求是否成功。 如果值為零,表示要求已取消。 否則,此值如下:

WAPPCINVALID
錯誤碼,表示沒有未完成的封鎖呼叫。

備註

例如,如果未完成的動詞與交談 (有關, SEND_DATARECEIVE_AND_WAIT) ,則會清除動詞並關閉會話。 例如,如果動詞與 TP (有關, RECEIVE_ALLOCATETP_STARTED) ,則會結束 TP。 在這兩種情況下,雖然實作會盡可能完全關閉交談和會話,但不會排清傳送緩衝區、等候確認等等。 此呼叫是同步的,且上述處理完成之後,函式就會完成。

在 Microsoft Windows 中,多執行緒應用程式可以有多個未處理的封鎖作業,但每個執行緒只能有一個。 為了區分多個未處理的呼叫, WinAPPCCancelBlockingCall 會取消目前或呼叫時的應用程式執行緒上的未處理作業;否則會失敗。 根據預設,Windows APPC 會在作業未完成時暫停呼叫的應用程式執行緒。 因此,起始封鎖作業的執行緒不會重新取得控制 (,因此,除非使用WinAPPCSetBlockingHook為執行緒註冊封鎖勾點,否則將無法發出對 WinAPPCCancelBlockingCall) 的呼叫。