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上下文之外调用时引发 。
示例
下面是此方法的简单常见用法:
下面是有关如何使用它的更多示例:
注解
在生成 await 过程中 JoinableTask,无论是否调用此方法,都不会运行任何消息泵,仅允许相关工作的内部方法除外。 当用户代码在委托或其被调用方中JoinableTask运行时,最终需要主线程的同步块(例如同步 I/O 或锁争用),此等待通常通过调用Wait(IntPtr[], Boolean, Int32)Current来实现。 此方法的默认实现允许某些中断(e.g. COM RPC 调用 ),这可能会在某些情况下 避免死锁。
调用此方法会将默认实现替换为在活动且控制Current期间JoinableTask不允许此类中断的默认实现Wait(IntPtr[], Boolean, Int32)。 由于此方法可以多次调用,因此此效果将保留在目标 JoinableTask 上,直到释放所有 DisableProcessing() 调用的返回值(按任意顺序)。 效果仅适用于直接 JoinableTask效果。 它不会影响其任何子级或父级。
禁用处理不会影响非Windows操作系统。
释放生成的值将还原为默认行为。 如果意向是禁用该执行剩余部分 JoinableTask的处理,则调用方无需释放此值。