可能不会在已启动的任务上调用RunSynchronously

时间:2012-05-11 17:00:15

标签: c# async-await task-parallel-library

我遇到了为我的应用程序进行单元测试而创建的c#类的问题,特别是围绕System.Threading.Tasks.Task对象的问题。

我有一个这样的对象列表,我想同步执行每个对象。

我打电话给以下人员:

myTask.RunSynchronously();

当我这样做时,我总是收到以下错误,我不知道为什么我可以解决它。

  

System.InvalidOperationException:可能未在已启动的任务上调用RunSynchronously。

有人有任何想法吗?

2 个答案:

答案 0 :(得分:32)

问题是当你致电TaskFactory.StartNew启动任务 - 我的意思是,甚至在你正在开始任务的方法名称中。 StartNew创建任务,然后代表您致电Start。 = d

如果你愿意,可以{@ 1}}完成任务,比如@Peter Ritchie说,或者你可以手动创建任务:

Wait

答案 1 :(得分:29)

它已经开始,只需使用myTask.Wait()