您好,我目前正在拥有一个包含数千(约3000+)行记录和9列的数据网格视图。我正在使用this method我发现将datagridview导出为excel。导出数百行没有问题但是当涉及到数千行时,它会挂起并且不会响应任何行。
可能是什么问题?如果有更快/更好的方式吗?
谢谢!
答案 0 :(得分:0)
代码正在UI线程上执行,因此您的应用程序当然会在执行时冻结。如果您希望UI保持响应,那么您必须在辅助线程上执行代码。问题是数据来自控件,因此至少必须在UI线程上执行该部分。
我建议一种可能性是使用BackgroundWorker
并在DoWork
事件处理程序中完成工作。您可以设置一个调用ReportProgress
的循环,该循环会在UI线程上引发ProgressChanged
事件,并允许您在页面中获取数据,然后在后台线程中将其写入电子表格。我将跟进一个例子。