假设我有一个有2个订阅者的事件(一切发生在同一个线程中) - 一个订阅者写入日志文件,另一个订阅者显示一个MessageBox。如何防止订阅者发生冲突的事件?
如果MessageBox是订阅列表中的第一个,那么直到用户关闭消息框后才会写入日志条目。因此,日志条目中的时间确实是消息框关闭的时间,而不是事件发生的时间。
看来最好的解决方案是让日志编写器在显示消息框的代码之前订阅事件。然而,在这里类似的问题:Are event subscribers called in order of subscription?
最好的答案是永远不依赖于订户的顺序。那么,如何避免冲突而不必担心他们的订单呢?
对不起 - 我指的是S. Lowe的回答 – 2009-12-10 22:53:39
@ R.B。 - 好的,但同样的逻辑适用。你是否在控制事件代码,所以可以保证它不会搅乱事物? – 2009-12-10 23:12:03
我有控制事件代码,但不是订阅者。 – 2009-12-10 23:21:50