C# 如何异步导出PivotGridControl数据?
我使用的是C# 如何异步导出PivotGridControl数据?,c#,wpf,devexpress,C#,Wpf,Devexpress,我使用的是DevExpress.Xpf.PivotGrid.PivotGridControl,用户希望加载大量数据(+50000)。之后,他想导出这些数据 我将此方法称为: this.pivotGridControl.ExportToCsv("C:\\example.csv"); 它可以工作,但因为它有大量的数据,它会挂起我的UI将近10秒 由于pivotGridControl是UI中控件的实例,我知道我不能使用ThreadPool.QueueUserWorkItem或BackgroundWo
DevExpress.Xpf.PivotGrid.PivotGridControl
,用户希望加载大量数据(+50000)。之后,他想导出这些数据
我将此方法称为:
this.pivotGridControl.ExportToCsv("C:\\example.csv");
它可以工作,但因为它有大量的数据,它会挂起我的UI将近10秒
由于pivotGridControl
是UI中控件的实例,我知道我不能使用ThreadPool.QueueUserWorkItem
或BackgroundWorker
。两者都会抛出以下消息(无内部异常):
调用线程必须是STA,因为许多UI组件都需要它。
是否可以从PivotGridControl导出数据而不阻塞UI?您可以启动一个新线程
var ExportToCsvThread = new Thread(x => this.pivotGridControl.ExportToCsv("C:\\example.csv"););
ExportToCsvThread.Name = "ExportToCsv Thread";
ExportToCsvThread.Start();
与
ThreadPool.QueueUserWorkItem
或BackgroundWorker
相同的问题。无法访问pivotGridControl
,因为它属于dispatcher线程。我建议您将数据复制到另一个控件,而不在UI中使用它。是的,我已经考虑过了,但我的记忆力很好。我想它会复制的,对吗?;)