使用vb.net

时间:2016-04-06 03:31:48

标签: vb.net excel datagridview

您好,我目前正在拥有一个包含数千(约3000+)行记录和9列的数据网格视图。我正在使用this method我发现将datagridview导出为ex​​cel。导出数百行没有问题但是当涉及到数千行时,它会挂起并且不会响应任何行。

可能是什么问题?如果有更快/更好的方式吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

代码正在UI线程上执行,因此您的应用程序当然会在执行时冻结。如果您希望UI保持响应,那么您必须在辅助线程上执行代码。问题是数据来自控件,因此至少必须在UI线程上执行该部分。

我建议一种可能性是使用BackgroundWorker并在DoWork事件处理程序中完成工作。您可以设置一个调用ReportProgress的循环,该循环会在UI线程上引发ProgressChanged事件,并允许您在页面中获取数据,然后在后台线程中将其写入电子表格。我将跟进一个例子。