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

ama*_*eur 25 c# task-parallel-library async-await

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

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

我打电话给以下人:

myTask.RunSynchronously();
Run Code Online (Sandbox Code Playgroud)

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

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

有人有任何想法吗?

Tej*_*ejs 35

问题是你在调用时启动了任务TaskFactory.StartNew- 我的意思是,甚至在你正在启动任务的方法名称中.StartNew创建任务,然后Start代表您打电话.= d

如果你愿意,你可以Wait像@Peter Ritchie所说的那样完成任务,或者你也可以手动创建任务:

var task = new Task(() => { ... });
task.RunSynchronously();
Run Code Online (Sandbox Code Playgroud)


Pet*_*hie 30

它已经开始使用了 myTask.Wait()