当前位置: 首页 > 知识库问答 >
问题:

此异步方法缺少“await”运算符,将同步运行

邢烨烨
2023-03-14

警告试着告诉我什么?我该怎么办?

这是我的代码:它是否使用多线程运行?

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");
}

共有1个答案

杨良才
2023-03-14

Async关键字本身并没有什么作用。将其从代码中移除,代码的行为将完全相同。

异步做什么?

  • 它更改了方法内部的有效内容,特别是它允许您使用await关键字
  • 反过来意味着将根据方法主体中存在的await转换方法主体。
  • 并且如果该方法返回一个值,则还将该方法转换为将返回值包装在任务中。
 类似资料: