最近我遇到了一些带有 async-await 的异步代码。我的问题是下面两个代码块有什么区别-
代码块 - 1
public async Task Method1(string fileName)
{
await Method2(fileName);
}
public async Task Method2(string filePath)
{
await Task.Run(() =>{
//do some task
});
}
代码块 - 2
public async Task Method1(string fileName)
{
await Method2(fileName);
}
public async Task Method2(string filePath)
{
Task.Run(() =>{
//do some task
});
}
这两个代码的区别在于 Method2 上的 await。当第三种方法(比如 Method3)调用 Method1 时会发生什么?从 Method3 观察到的执行有什么不同?