【发布时间】:2015-04-02 14:07:05
【问题描述】:
我需要在主线程上绘制一个 datagridview。我正在处理的数据来自通常包含数千条记录的大型 Excel 文件。 当我验证(检查错误并绘制)时,它会阻塞主 UI,显示“应用程序没有响应”并且在完成之前不会刷新进度条。
我在使用后台工作者时没有这样的问题,但由于需要在主线程上绘制数据网格 && 添加列表视图项,这种方法将不起作用。
我可以在主线程上运行它,但我希望它显示进度条并且不会变得无响应。
我对异步编程和 Control.Invoke() 还很陌生。我该如何处理?
【问题讨论】:
-
您不能将验证和加载拆分到 datagridview 进程中吗?这样验证可以在后台线程中完成。您还可以在后台将所有内容加载到您的数据集中,然后在一切完成后让 datagridview 加载该数据
-
这将是我的方法,但它很浪费 - 迭代 excel 文件,列出有错误的行,然后再次迭代以添加 listviewitems 并绘制网格。
标签: c# winforms datagridview