2013-06-25 2 views
0

Я использую DevExpress.Xpf.PivotGrid.PivotGridControl, и пользователь хочет загрузить много данных (+50,000). После этого он хочет экспортировать эти данные.Как экспортировать данные PivotGridControl асинхронно?

Я звоню этот метод:

this.pivotGridControl.ExportToCsv("C:\\example.csv"); 

Это работает, но так много данных, он висит мой пользовательский интерфейс почти 10 секунд.

С pivotGridControl является экземпляром элемента управления в пользовательском интерфейсе. Я знаю, что не могу использовать ThreadPool.QueueUserWorkItem или BackgroundWorker. И бросьте ниже сообщения (без внутреннего исключения):

The calling thread must be STA, because many UI components require this.

Можно ли экспортировать данные из PivotGridControl без блока пользовательского интерфейса?

ответ

0

Вы можете начать новую тему

 var ExportToCsvThread = new Thread(x => this.pivotGridControl.ExportToCsv("C:\\example.csv");); 
     ExportToCsvThread.Name = "ExportToCsv Thread"; 
     ExportToCsvThread.Start(); 
+0

Та же проблема, как '' ThreadPool.QueueUserWorkItem' или BackgroundWorker'. Невозможно выполнить «pivotGridControl», потому что он принадлежит потоку диспетчера. –

+0

Можете ли вы работать с копией вашего стержня? – Daniel

+0

Я предполагаю, что вы посоветуете сделать копию данных другому контролю без использования его в пользовательском интерфейсе. Да, уже это считал, но я играю в памяти. Думаю, он будет дублировать, верно? ;) –