語言

JoinableTaskFactory.DisableProcessing 方法

定義

防止過濾訊息泵在環境同步等待 JoinableTask期間運行。

public Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation DisableProcessing();
member this.DisableProcessing : unit -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation
Public Function DisableProcessing () As JoinableTaskFactory.ProcessingDisabledOperation

傳回

當抑制同步等待訊息泵的需求結束時,這個值可能會被捨棄。 或者如果其他部分 JoinableTask 是打算關閉處理,也可以丟棄。

例外狀況

在非上下文 JoinableTask中被叫出時會丟出。

範例

以下是此方法的一個簡單且常見的用法:

以下是更多可能的使用範例:

備註

在 內的 yield awaitJoinableTask期間,無論是否呼叫此方法,訊息泵都不會執行,除了內部方法,該方法只允許相關工作。 當使用者程式碼在 JoinableTask 代理或其被調用者中執行,最終需要主執行緒的同步區塊(例如同步 I/O 或鎖爭用)時,這種等待通常透過呼叫 Wait(IntPtr[], Boolean, Int32) 來 Current實現。 此方法的預設實作允許某些中斷(e.g. COM RPC 呼叫), 可 避免在某些情況下的死結。

呼叫此方法將替換為預設的實作,該實作Wait(IntPtr[], Boolean, Int32)在 活躍且控制 Current時不允許此類中斷JoinableTask。 由於此方法可多次呼叫,此效果會持續停留在目標 JoinableTask 上,直到所有 DisableProcessing() 呼叫的回傳值(順序任意)都被處理完畢。 此效應僅適用於直接 JoinableTask的 。 它不影響任何子女或家長。

停用處理對非 Windows 作業系統沒有影響。

丟棄所得值後,會回復預設行為。 如果呼叫者的意圖是為了在該執行的剩餘時間內停用處理, JoinableTask則不必丟棄此值。

適用於