RpcCancelThread 函式 (rpcdce.h)
RpcCancelThread函式會取消執行緒。 RpcCancelThread函式不應該用來取消非同步 RPC 呼叫;請改用RpcAsyncCancelCall函式取消非同步 RPC 呼叫。
語法
RPC_STATUS RpcCancelThread(
void *Thread
);
參數
Thread
要取消之執行緒的控制碼。
傳回值
值 | 意義 |
---|---|
|
呼叫成功。 |
|
執行緒控制碼沒有許可權。 執行緒控制碼必須正確設定THREAD_SET_CONTEXT,函式才能正確執行。 |
|
由 MS-DOS 或 Windows 3.x 用戶端呼叫。 |
備註
RpcCancelThread函式可讓一個用戶端執行緒取消另一個用戶端執行緒上的 RPC 進行中。 呼叫函式時,會通知伺服器執行時間取消作業。 伺服器存根可以藉由呼叫 RpcTestCancel來判斷是否已取消呼叫。 如果已取消呼叫,伺服器存根應該清除並將控制權傳回給用戶端。
RpcCancelThread函式無法用來取消已發出靜態回呼的呼叫。 請勿取消遠端程序呼叫,這些呼叫函式可能會在 IDL-file 中使用 [callback] 屬性宣告。
根據預設,用戶端會永遠等候伺服器在取消之後傳回控制權。 若要縮短此時間,請呼叫 RpcMgmtSetCancelTimeout,並指定要等候回應的秒數。 如果伺服器未在此間隔內傳回,則呼叫會在用戶端失敗,並出現 RPC_S_CALL_FAILED 例外狀況。 伺服器存根會繼續執行。
如果您使用具名管道通訊協定 ,ncacn_np,則必須指定有限的逾時。
您可以使用 RpcCancelThread 搭配任何連線導向通訊協定 (ncacn_*) ,以及除了 ncadg_mq 和 ncalrpc以外的任何資料包通訊協定。
注意 Windows XP/2000 RpcCancelThread 函式不適用於 ncacn_HTTP。 RpcCancelThread函式支援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 |