本文介绍了为什么此任务挂起?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
[TestMethod]
public void Y()
{
int i = 0;
new Task(() => i++).Wait();
Assert.AreEqual(1, i);
}
上例中的任务永远等待的原因是什么?我应该如何为该任务Wait()使其不挂起?
推荐答案
您没有启动Task。试试这个:
[TestMethod] public void Y() { int i = 0; Task task = new Task(() => i++); task.Start(); task.Wait(); Assert.AreEqual(1, i); }或者更好(如Damien建议的)使用Task.Run():
[TestMethod] public void Y() { int i = 0; Task.Run(() => i++).Wait(); Assert.AreEqual(1, i); }更多推荐
为什么此任务挂起?
发布评论