|
|
1
1
我看到事件的流程是这样的:
我会使用线程而不是后台工作人员,但我很有信心使用线程。 后台工作人员确实简化了线程,如果您没有信心,那将是我建议的起点。 这样,您可以同时更新源和ui,用户可以在处理过程中继续使用应用程序。 |
|
|
2
0
听起来,报告进度后台工作人员将帮助您完成导入操作和ui报告。 |
|
|
3
0
我认为BackgroundWorker将帮助您完成这项任务(您也可以使用单独的线程,并在UI线程上使用正确的invoke()调用)。问题是所有单独的线程都在更新UI。您知道,UI的所有更新都需要在UI所属的同一线程上,因此,使用锁创建BindingList的安全实现,并执行大量更新,可能会导致表单无响应。 如果您使用BackgroundWorker尝试限制ReportProgress的使用,如果表单滞后,则改进功能的更安全的方法是使用2 datagrid。您可以将它们一个接一个地处理,就像它只是一个网格一样。 拜伊 |
|
|
4
0
我认为最好在UI线程上创建一个副本并合并回对对象的更改,因为另一种方法-使用原始引用将要求您对对象和绑定列表进行更多锁定。 |