【发布时间】:2013-07-08 18:13:09
【问题描述】:
这是我的问题:我需要在 ApiController 中调用多个第 3 方方法。这些方法的签名是Task DoSomethingAsync(SomeClass someData, SomeOtherClass moreData)。在 ApiController 将数据发送回客户端后,我希望这些调用继续在后台运行。当DoSomethingAsync 完成时,我想做一些日志记录,并可能将一些数据保存到文件系统中。我怎样才能做到这一点?我更喜欢使用 asyny/await 语法。
【问题讨论】:
-
你的任务类似于
.ContinueWith。这是您可以进行日志记录的地方。 -
当您说“ApiController 将数据发送回客户端后”时,您的意思是连接也关闭了吗?客户端可以在保持连接打开的同时从服务器接收数据吗?
-
是的,连接已关闭。
-
对于 .Net Core 2.x,请查看 IHostedService。此博客中的一个很好的例子:stevejgordon.co.uk/asp-net-core-2-ihostedservice。类似于hangfire的概念。
标签: task-parallel-library async-await asp.net-web-api