【发布时间】:2017-04-30 15:49:58
【问题描述】:
我的程序有以下语句的 3 个警告:
此异步方法缺少“等待”运算符,将同步运行。 考虑使用 'await' 运算符来等待非阻塞 API 调用, 或 'await Task.Run(...)' 在后台线程上执行 CPU 密集型工作。
警告试图告诉我什么?我该怎么办?
这是我的代码:它是否使用多线程运行?
static void Main(string[] args)
{
Task task1 = new Task(Work1);
Task task2 = new Task(Work2);
Task task3 = new Task(Work3);
task1.Start();
task2.Start();
task3.Start();
Console.ReadKey();
}
static async void Work1()
{
Console.WriteLine("10 started");
Thread.Sleep(10000);
Console.WriteLine("10 completed");
}
static async void Work2()
{
Console.WriteLine("3 started");
Thread.Sleep(3000);
Console.WriteLine("3 completed");
}
static async void Work3()
{
Console.WriteLine("5 started");
Thread.Sleep(5000);
Console.WriteLine("5 completed");
}
【问题讨论】:
-
async并不意味着“多线程”。请参阅我的 intro toasync帖子,了解async的作用。 -
@StephenCleary 谢谢,这篇文章非常好,易于理解
标签: c# asynchronous async-await