在asp.net WebAPI的后台运行async / await非阻塞代码

时间:2015-01-20 09:49:02

标签: c# .net asynchronous task async-await

假设我想在Web API控制器中在后台运行代码,这不会延迟用户响应。 此外,使代码在后台运行并不意味着我不关心它的性能和它为服务器创建的工作量。 所以,为了提高效率,我想使用async& amp;等待最大限度地利用CPU时间。

我尝试了几种方法,但如果有这样的话,它们之间并没有完全不同:

1

Task.Factory.StartNew(() => 
SomeAsyncFunction(param), TaskCreationOptions.PreferFairness);

在这种情况下,我创建了一个新的Task调用异步函数,该函数也使用了await inside。 因为我不希望代码等待,所以我没有在外面使用等待。 请注意,与在常规函数中编写此代码不同,我没有得到“考虑添加'await'运算符”警告。

代码确实在后台运行,但是async&等待使用的特征?

2

Task.Factory.StartNew(async () => 
await SomeAsyncFunction(param), TaskCreationOptions.PreferFairness);

几乎相同的情况,但这次使用异步匿名函数并在其中使用await运算符。 是否与async& amp;的第一种情况完全不同?等待特质?

我见过一个非常相似的问题here 但是我更了解它是如何工作的,而不是为问题找到一个复杂的现成解决方案

谢谢!

0 个答案:

没有答案