asysc /wait task 示例执行

task 的执行通task.start()、task.run(),但标识了asysc/wait的执行就是方法调用,而且会安顺序执行完成

public static void Main()
{

    TestAsync();

async Task TestAsync()
{
Console.WriteLine($"主线程ID: {Thread.CurrentThread.ManagedThreadId}");

// 1. 遇到await,主线程立即返回(不阻塞)
await Task.Run(() =>
{
Console.WriteLine($"子线程ID: {Thread.CurrentThread.ManagedThreadId}");
Thread.Sleep(3000);
Console.WriteLine("子线程完成");
});

// 2. await后的代码,由线程池的线程执行
Console.WriteLine($"await后线程ID: {Thread.CurrentThread.ManagedThreadId}");
Console.WriteLine("继续执行");
}

}

async Task AsyncMethod()
{
        await Task.Run(() =>
       {
  Console.WriteLine("步骤1");
  Thread.Sleep(1000);
  });
  await Task.Run(() =>
  {
  Console.WriteLine("步骤2");
  Thread.Sleep(1000);
  });
  await Task.Run(() =>
  {
  Console.WriteLine("步骤3");
  Thread.Sleep(1000);
  });
  // 按顺序输出:步骤1 -> 步骤2 -> 步骤3
}

posted @ 2026-04-13 17:01  herry507  阅读(3)  评论(0)    收藏  举报