我正在使用Tasks在我的ViewModel中运行长时间运行的服务器调用,并且使用TaskScheduler.FromSyncronizationContext()
将结果汇编回Dispatcher
。例如:当前SynchronizationContext不能用作TaskScheduler
var context = TaskScheduler.FromCurrentSynchronizationContext();
this.Message = "Loading...";
Task task = Task.Factory.StartNew(() => { ... })
.ContinueWith(x => this.Message = "Completed"
, context);
这适用于我执行应用程序。但是,当我在Resharper
运行我的NUnit
测试中,我得到呼叫的错误消息FromCurrentSynchronizationContext
为:
目前的SynchronizationContext可能不被用作的TaskScheduler。
我想这是因为测试工作线程上运行。我如何确保测试在主线程上运行?欢迎任何其他建议。
的工作,谢谢! – anivas
对于MSTest:将上面的代码放在用ClassInitializeAttribute标记的方法中。 – SACO
不知道... –