public void A()
{
B();//开始执行方法B中的代码,但在方法A里不会等待方法B,会继续执行下面的代码
Console.WriteLine($"{DateTime.Now.ToLongTimeString()}这是方法A,线程ID是{Thread.CurrentThread.ManagedThreadId}");
//Thread.CurrentThread.ManagedThreadId获取当前托管线程的唯一标识符
}
public async void B()
{
Task t = Task.Run(C);//创建一个任务,把方法C放进去
await t;//运行这个任务,开始执行方法C中的代码,在方法B中会等待方法C中的代码执行完成后 再执行方法B剩下的代码
Console.WriteLine($"{DateTime.Now.ToLongTimeString()}这是方法B,线程ID是{Thread.CurrentThread.ManagedThreadId}");
}
public void C()
{
Task.Delay(5000).Wait();//延迟5秒,模拟耗时操作
Console.WriteLine($"{DateTime.Now.ToLongTimeString()}这是方法C,线程ID是{Thread.CurrentThread.ManagedThreadId}");
}
输出结果: