我有一个表单“StartForm”,用户在其中选择组合框,然后单击一个按钮。从那里我想:
生成另一个表单的实例,“MainForm”
在该表单上填充大约 50 000 行的 DataGridView
循环遍历数据网格视图中的每一行并对其执行一些处理。就我而言,它根据单元格的值格式化行颜色,并更新一些列。
显示表格。
这是直截了当的,但是由于大量的行和每一行的处理时间,UI 在构造 MainForm 时冻结。因此,我需要在后台线程上构建 MainForm,并在此过程中在 StartForm 上填充进度条。
使用 backgroundWorker 时,我不断收到跨线程异常或我的格式丢失,并且 control.Invoke() 似乎也抛出异常。也许我只是没有正确使用这些......
有人可以解释一下如何完成上述工作吗?我试图让问题保持基本理解,以便对其他人有所帮助,但如果您想要我的代码,请询问。
谢谢!