门用于控制调度程序处理事件的时间。
以下是一个使用门的示例:
public class MyElement : VisualElement { void Foo() { using (new EventDispatcherGate(dispatcher)) { // do something that sends events } } }
当门被实例化时,它会自动关闭,使调度程序将其收到的事件存储在队列中。在 using
块的结尾,将调用 Dispose,进而触发门的打开。当调度程序上的所有门都打开时,将处理存储在队列中的事件。处理事件队列时关闭门并不会阻止处理过程。而是会创建一个新队列来存储新事件。
EventDispatcherGate | 构造函数。 |
Dispose | IDisposable.Dispose 实现。打开门。如果所有门都打开,将处理队列中的事件。 |