[英]Updating Winform ListView control by one event handler that may be fired from several threads
我有一个“ Win Form”应用程序,该应用程序侦听可能从某些不同线程引发的事件。
在该事件上,我想更新“列表视图”控件。 当然,我可能需要使用Invoke,但我的问题是:我应该在要构建的函数上使用锁来更新“列表视图”控件吗?
请注意,我仅通过表单中的一个函数并且仅通过一个事件来更新列表视图,但是一个以上的线程可能会引发同一事件。
是否所有线程可能触发的所有事件仅由主线程处理,以便它们将被一个一个地执行?
谢谢。
如果您认为该事件可能同时在多个线程中触发,或者至少在完成更新之前再次触发,那么您应该锁定。
很简单的东西:
lock(myListView) {
updateMyListView();
}
应该足够了。 锁定列表视图对象仍应允许您对其进行编辑。
提醒一下,这不会阻止其他事情编辑列表视图, 只有具有自己的lock(myListView)
块的代码才会注意该锁。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.