标签: c# multithreading performance events asynchronous
我曾经多次表示性能问题是由C#事件处理程序引起的,时间超过预期,在执行时有效地阻塞了工作线程。
从那时起,我总是将事件编码为运行异步(使用BeginInvoke),而不考虑首先是否严格必要。
BeginInvoke
这种方法是否有任何缺点(除了轻微的性能影响)?在哪种情况下,需要在同一个线程上运行事件(除了你想在等待结果时阻塞的明显情况)?必须有一些理由说明它不是默认行为。