zmo*_*kus 3 .net c# task-parallel-library
我在尝试测试TPL时遇到了一个简单的问题.我想在控制台窗口中获取数字(从1到1000).
这是我的代码:
class Program
{
static void Main(string[] args)
{
Task.Factory.StartNew(Calculate).ContinueWith(task =>
{
Task.WaitAll();
Console.ReadKey();
});
}
private static void Calculate()
{
for (var number = 0; number < 1000; number++)
{
Console.WriteLine(number);
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是窗口刚刚关闭而且没有显示任何内容.我知道我在ContinueWith方法中弄乱了一些东西.我怀疑ContinueWith没有执行(因为窗口只是在没有输入的情况下关闭)但我不知道为什么.
任何建议都有帮助(尝试阅读MSDN,但无济于事).提前致谢.
延续异步运行.如果你做一点测试:
public static void Main(string[] args)
{
Task.Factory.StartNew(Calculate).ContinueWith(task =>
{
Console.WriteLine("Finished!");
});
Console.WriteLine("Press ENTER to close...");
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
你会看到的
按ENTER关闭...
1
2
3
...
999
完了!
因为延续不会阻止.
如果要阻止主执行线程等待任务,可以执行以下操作:
var task = Task.Factory.StartNew(Calculate);
task.Wait();
Run Code Online (Sandbox Code Playgroud)
它会阻止Wait.
| 归档时间: |
|
| 查看次数: |
4390 次 |
| 最近记录: |