建议的做法是异步引发所有事件,如果

123*_*per 1 c# events

如果类(事件引发对象)对如何通过客户端对象(事件的接收者)操纵事件的参数不感兴趣,那么建议的做法是异步引发所有事件吗?

请指导我?

LBu*_*kin 5

不,这不是推荐的做法.

您必须考虑其他因素,例如:

  • 进化类的线程亲和力要求.
  • 是否涉及UI元素(线程关联性的变体)
  • 响应事件的类是否可以接受多个线程上的并发处理(也就是说它们是线程安全的).
  • 是否涉及线程本地数据(例如Thread.CurrentPrincipal,HttpContext等)
  • 您是否从多线程处理获得任何东西.

多线程使事情变得复杂.异步事件处理需要多线程处理.如果它为你买了东西,你应该只引入复杂性(例如改进的性能,更敏感的用户交互,简化其他更复杂的东西).

在不知道具体情况的细节的情况下,不可能建议异步事件是否合适.但是所有事情都是平等的 - 我会避免异步事件,除非我有充分的理由.