【发布时间】:2017-08-11 15:30:39
【问题描述】:
我想运行 GetAnswerToLife 方法等待 5 秒,然后在“for 循环”打印数字时打印 210。但是下面的代码只打印了 for 循环,我不能让这个异步方法工作。 210在任何地方都看不到。我在这里有什么遗漏吗?
using System;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication30
{
internal class Program
{
private static async Task<int> GetAnswerToLife()
{
await Task.Delay(5000);
int answer = 21 * 10;
return answer;
}
private static void Main(string[] args)
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine(i);
Thread.Sleep(100);
}
int a = GetAnswerToLife().Result;
Console.WriteLine(a);
}
}
}
【问题讨论】:
-
这对我来说很好。
-
它可以工作,但它们不能异步工作。在 for 循环完成打印之后,打印 210。我想要的循环和其他方法同时开始。
-
您为什么希望它们同时运行?甚至在您等待 GetAnswerToLife 方法之前,for 循环就已完成。
-
那我该怎么做才能让它们同时启动呢?
-
不可能同时启动。一个(甚至更多)cpu 周期最小时间间隔
标签: c# async-await