[TestMethod]
public void Y()
{
int i = 0;
new Task(() => i++).Wait();
Assert.AreEqual(1, i);
}
Run Code Online (Sandbox Code Playgroud)
出于什么原因,上述示例中的任务永远等待?我应该怎么Wait()做任务,所以它不挂?
你没有启动的Task.试试这个:
[TestMethod]
public void Y()
{
int i = 0;
Task task = new Task(() => i++);
task.Start();
task.Wait();
Assert.AreEqual(1, i);
}
Run Code Online (Sandbox Code Playgroud)
甚至更好(如Damien所建议)使用Task.Run():
[TestMethod]
public void Y()
{
int i = 0;
Task.Run(() => i++).Wait();
Assert.AreEqual(1, i);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |