【发布时间】:2015-01-30 05:59:44
【问题描述】:
我有一组对象在其自己的线程(后台工作者)中定期更新。我的主窗体订阅了所有这些对象的 ValueChanged 事件,并相应地更新了一些 UI 元素。
//pseudo code, this loops run on a timer
foreach (obj myObj in myObjctList )
{
myObj.Refresh()///// This raises an event if data changed
}
如果 myObj 引发和事件并且必须等到主 UI 订阅者完成才能继续下一次 Refresh() 迭代,此线程是否会阻塞?
如果是这样,使用任务/线程引发事件是否会更好,这样它就不会阻塞更新线程?不确定这将如何工作/会有多少开销,因为它会不断产生新的任务
【问题讨论】:
标签: c# multithreading winforms event-handling eventhandler