Task.Run中的lambda应该是异步的吗?

时间:2016-10-13 13:53:29

标签: c# asynchronous lambda task

我知道这有答案,但没有一个是清楚的。以下是否有任何区别?

// Option A
var result = Task.Run(() => GetAsync(id)).GetAwaiter().GetResult();

// Option B
var result = Task.Run(async () => await GetAsync(id)).GetAwaiter().GetResult();

其中一种更好还是首选?

为了澄清,使用Task.Run()的原因是,这是从同步方法调用的,不能将其设置为异步。它不能被异步的原因是它是从剃刀视图调用的,它(在ASP.NET 4.5中)只是同步。使用Task.Run()的原因是确保我们不会遇到死锁。

编辑这不是链接问题的重复

0 个答案:

没有答案