【发布时间】:2013-12-03 16:14:31
【问题描述】:
此方法调用位于派生自DispatcherObject 的类中:
Dispatcher.Invoke(DispatcherPriority.Input, new ThreadStart(() =>
{
var exported = formatProvider.Export(original.Workbook);
Workbook = formatProvider.Import(exported);
}));
该类上的方法由其DoWork 委托中的后台工作人员调用。
Workbook 是 Telerik 的 Workbook,由 RadSpreadsheetControl 使用。显然,工作簿只能由 UI 线程访问。
上面的代码抛出一个InvalidOperationException,说
调用线程必须是STA,因为很多UI组件需要 这个。
我不太明白,因为我认为当使用 Dispatcher 调用操作时,我会从 UI 线程(即 STA)调用它?
我在这里遗漏了什么,如何解决?或者这应该在一般情况下工作并且错误在其他地方?那可能是什么原因呢?
【问题讨论】:
标签: wpf dispatcher sta