JoinableTaskFactory.DisableProcessing 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
防止過濾訊息泵在環境同步等待 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則不必丟棄此值。