我希望有人可以帮我解决一个问题:
我有一个带有ObjectListView控件的主窗体。当我通过主窗体上的代码向控件添加对象时,一切正常,但是......
我有一个做一些处理的类。这个类启动一个ThreadPool来处理传入的信息,一旦完成,我试图更新存储在主窗体上的ObjectListView。
奇怪的是我绝对没有错误,调试器一直很好,只是没有任何东西通过该类在控件上填充。
我不知道我做错了什么......
所以这没有给我任何东西:
Dim _activityItem As New ActivityItem
frmMain.lsvActivity.AddObject(_activityItem)
然而它在frmMain上运作良好
更新 我已经关闭了ThreadPooling,它仍然没有更新ObjectListView控件。
更新2 只是为了让事情变得更加清晰,我将解释应用程序的工作原理(简要说明):
由于
答案 0 :(得分:0)
试试这个。
frmMain.Invoke(Sub() frmMain.lsvActivity.AddObject(_activityItem))
您不应该直接从UI线程以外的任何线程访问UI控件
Control.Invoke
在UI线程上执行指定的委托。