小编lit*_*_05的帖子

Task.Run 下是否需要 await / async 关键字?

我有一个包裹在 Task.Run 下的异步 lambda 表达式。但是,看起来我可以删除 async 和 await 关键字,它们会产生相同的结果。

t1 = Task.Run(() => DoSomethingExpensiveAsync());
t2 = Task.Run(() => DoSomethingExpensiveAsync());
await Task.WhenAll(t1, t2);
Run Code Online (Sandbox Code Playgroud)

对比

var t1 = Task.Run(async () => await DoSomethingExpensiveAsync());
var t2 = Task.Run(async () => await DoSomethingExpensiveAsync());
await Task.WhenAll(t1, t2);
Run Code Online (Sandbox Code Playgroud)
  1. 为什么编译器让我这样做以及幕后发生了什么?
  2. 是否存在添加它们会产生影响的情况?

c# task async-await

5
推荐指数
2
解决办法
161
查看次数

标签 统计

async-await ×1

c# ×1

task ×1