private void A()
{
B();
C();
}
private void B()
{
Task.Run(() =>
{
// 模拟一些耗时操作
Thread.Sleep(5000);
Console.WriteLine("任务1");
});
Console.WriteLine("任务2");
}
private void C()
{
Console.WriteLine("任务C");
}
执行A的结果:
任务2
任务C
任务1
执行顺序是: B() ---C()---Task.Run()
修改B方法
private async void B()
{
await Task.Run(() =>
{
Thread.Sleep(5000);
Console.WriteLine("任务1");
});
Console.WriteLine("任务2");
}
执行A的结果:
任务C
任务1
任务2
执行顺序是: C()---Task.Run()
await 会阻止B()方法的执行,直到Task.Run() 执行完,