jjzjj

IEventHandler

全部标签

c# - Autofac:在一个组合后面隐藏多个逆变实现

我被thisSOquestion触发了关于Autofac的(.NET4.0)协变和逆变支持,现在我正在尝试实现类似的东西,但没有任何运气。我想要实现的是以这样的方式配置Autofac,当我解析一个具体的IEventHandler时(为了使用container.Resolve进行演示,但通常当然使用构造函数注入(inject)),Autofac将返回一个MultipleDispatchEventHandler它包装了所有可从请求的处理程序分配的已注册事件处理程序。换句话说,当我这样写的时候:varhandler=container.GetInstance>();handler.Handl

java - 在遍历事件处理程序集合时,如何安全地从回调中移除处理程序?

我对某事有点困惑。Java的文档告诉我们,在使用Iterator对象迭代该集合时从集合中删除项目时没有定义的行为,唯一安全的方法是使用Iterator.remove()。那么,如果在遍历列表的过程中,其中一个处理程序决定是时候将其自身作为监听器删除,那么您如何安全地从ArrayList中删除事件处理程序?//inpublicclassDispatcherpublicvoiddispatchEvent(){Iteratoriterator=mHandlers.iterator();IEventHandlerhandler=null;while(iterator.hasNext()){ha