共用方式為


DispatchSource.Cancel 方法

定義

以非同步方式取消分派來源。

public void Cancel ();
member this.Cancel : unit -> unit

備註

Cancel() 式會以非同步方式取消分派來源,以防止其事件處理常式區塊的任何進一步調用。 取消不會中斷目前正在執行的處理常式區塊, (非先占式) 。 如果在第一次繼續之前取消來源,則永遠不會呼叫其事件處理常式。   (在此情況下,請注意,來源必須先繼續,才能發行。)

IsCanceled 式可用來判斷指定的來源是否已取消。

當分派來源取消時,其選擇性取消處理常式會提交至其目標佇列。 取消處理常式可以透過 SetCancelHandler(Action) 指定。 此取消處理常式只會叫用一次,而且只會直接呼叫 Cancel()

重要事項:檔案描述元和 mach 埠型來源需要取消處理常式,才能安全地關閉描述元或終結埠。 在取消處理常式執行之前關閉描述項或埠可能會導致競爭狀況:如果新的描述項配置的值與最近關閉的描述項相同,而來源的事件處理常式仍在執行中,事件處理常式可能會將資料讀/寫到錯誤的描述元。

適用於