共用方式為


RpcCancelThread 函式 (rpcdce.h)

RpcCancelThread函式會取消執行緒。 RpcCancelThread函式不應該用來取消非同步 RPC 呼叫;請改用RpcAsyncCancelCall函式取消非同步 RPC 呼叫。

語法

RPC_STATUS RpcCancelThread(
  void *Thread
);

參數

Thread

要取消之執行緒的控制碼。

傳回值

意義
RPC_S_OK
呼叫成功。
RPC_S_ACCESS_DENIED
執行緒控制碼沒有許可權。 執行緒控制碼必須正確設定THREAD_SET_CONTEXT,函式才能正確執行。
RPC_S_CANNOT_SUPPORT
由 MS-DOS 或 Windows 3.x 用戶端呼叫。
 
注意 如需有效錯誤碼的清單,請參閱 RPC 傳回值
 

備註

RpcCancelThread函式可讓一個用戶端執行緒取消另一個用戶端執行緒上的 RPC 進行中。 呼叫函式時,會通知伺服器執行時間取消作業。 伺服器存根可以藉由呼叫 RpcTestCancel來判斷是否已取消呼叫。 如果已取消呼叫,伺服器存根應該清除並將控制權傳回給用戶端。

RpcCancelThread函式無法用來取消已發出靜態回呼的呼叫。 請勿取消遠端程序呼叫,這些呼叫函式可能會在 IDL-file 中使用 [callback] 屬性宣告。

根據預設,用戶端會永遠等候伺服器在取消之後傳回控制權。 若要縮短此時間,請呼叫 RpcMgmtSetCancelTimeout,並指定要等候回應的秒數。 如果伺服器未在此間隔內傳回,則呼叫會在用戶端失敗,並出現 RPC_S_CALL_FAILED 例外狀況。 伺服器存根會繼續執行。

如果您使用具名管道通訊協定 ,ncacn_np,則必須指定有限的逾時。

您可以使用 RpcCancelThread 搭配任何連線導向通訊協定 (ncacn_*) ,以及除了 ncadg_mqncalrpc以外的任何資料包通訊協定。

注意 Windows XP/2000 RpcCancelThread 函式不適用於 ncacn_HTTPRpcCancelThread函式支援ncacn_HTTP在Windows Server 2003 或更新版本的作業系統和 Windows XP 上使用 Service Pack 1 (SP1) 及更新版本。

需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 rpcdce.h (包含 Rpc.h)
程式庫 Rpcrt4.lib
Dll Rpcrt4.dll

另請參閱

RpcTestCancel

ncacn_HTTP

ncadg_mq

ncalrpc