【发布时间】:2011-08-23 17:20:06
【问题描述】:
使用线程非常简单
Thread thread = new Thread(MethodWhichRequiresSTA);
thread.SetApartmentState(ApartmentState.STA);
如何在 WPF 应用程序中使用任务来完成相同的任务?这是一些代码:
Task.Factory.StartNew
(
() =>
{return "some Text";}
)
.ContinueWith(r => AddControlsToGrid(r.Result));
我收到了一个 InvalidOperationException
调用线程必须是 STA,因为很多 UI 组件都需要这个。
【问题讨论】:
-
对于任何来寻找问题真正意图的未来访问者:- 使用
StaTaskScheduler(guide),正如 answer 中指出的那样 - DIY 版本:stackoverflow.com/questions/16720496/…
标签: c# wpf multithreading thread-safety task-parallel-library