jjzjj

WeakEventManager

全部标签

c# - WeakEventManager RemoveHandler 在异步调用时并不总是有效

我正在使用WeakEventManager类以订阅C#中的事件。事件订阅工作正常,但是调用WeakEventManager.RemoveHandler来自Task并不总是删除处理程序-大多数(但不是全部)事件触发时处理程序仍会执行。下面的例子说明了这一点。publicclassEventSource{publiceventEventHandlerFired=delegate{};publicvoidFireEvent(){Fired(this,EventArgs.Empty);}}classProgram{privatestaticbooladded,removed,handled;s