DispatchSource.Cancel 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
异步取消调度源。
public void Cancel ();
member this.Cancel : unit -> unit
注解
函数 Cancel() 异步取消调度源,防止进一步调用其事件处理程序块。 取消不会中断当前正在执行的处理程序块 (非抢占式) 。 如果在第一次恢复源之前取消了源,则永远不会调用其事件处理程序。 (在这种情况下,请注意,必须先恢复源,然后才能释放它。)
函数 IsCanceled 可用于确定是否已取消指定的源。
取消调度源时,其可选的取消处理程序将提交到其目标队列。 可以通过 指定 SetCancelHandler(Action)取消处理程序。 此取消处理程序仅调用一次,并且仅作为调用 Cancel()的直接结果调用。
重要提示:基于文件描述符和 mach 端口的源需要取消处理程序,以便安全关闭描述符或销毁端口。 在取消处理程序运行之前关闭描述符或端口可能会导致争用条件:如果在源的事件处理程序仍在运行时使用与最近关闭的描述符相同的值分配新的描述符,则事件处理程序可能会将数据读/写到错误的描述符。