我试图从我收到的申请中找出一些意义,以便追踪错误的根源。有一些代码(此处进行了简化)创建了四个线程,这些线程依次填充主窗体上的列表视图。每个方法从数据库获取数据并从资源 dll 检索图形,以便直接填充图像列表和列表视图。
从我在这里读到的内容(link)不应从 UI 线程以外的任何线程更新 UI 元素,但这似乎有效?
Thread t0 = new Thread(new ThreadStart(PopulateListView1));
t0.IsBackground = true;
t0.Start();
Thread t1 = new Thread(new ThreadStart(PopulateListView2));
t1.Start();
Thread t2 = new Thread(new ThreadStart(PopulateListView3));
t2.Start();
Thread t3 = new Thread(new ThreadStart(PopulateListView4));
t3.Start();
错误本身是 System.InvalidOperationException“无法将图像添加到 ImageList”。这让我想知道上面的代码是否以某种方式链接。
这种填充 UI 的方法是否值得推荐?如果不推荐,可能会导致什么并发症?
Update:
我可能通过提及“表格”提供了一些错误信息。该应用程序是一个 Windows 窗体应用程序,但代码来自基于用户控件的插件应用程序。线程是在该控件公开公开的初始化方法内创建的。列表视图等也是该插件用户控件的一部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)