【发布时间】:2011-02-09 11:10:46
【问题描述】:
我有一个ListView 控件从BackgroundWorker 到ReportProgress 接收数据。工人快速连续地倾倒了大约一百行。每个数据块都会触发ProgressChanged 事件,并且GUI 线程会向ListView 添加一个新项目。
由于数据检索操作在单独的线程上运行,因此 GUI 应该在每次更改时更新。但由于某种原因,它没有发生 - 界面保持冻结,直到工作人员完成。
有什么想法吗?
另外,测试是在非常快的机器上完成的,所以我认为计算机性能不是问题。
这是一个 WinForms 应用程序。
【问题讨论】:
-
还提到 WPF 或 windows 窗体。
-
WinForms。该代码没有任何具体内容 - 只是 Worker.ReportProgress(25, newItem) 和 ListView1.Items.Add(item.DisplayName)。
标签: .net multithreading user-interface backgroundworker