You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中无需等待异步任务完成即可返回Ok,但需获取任务响应

问题需求

需要调用外部API的SendMessageAsync(string message)方法,要求无需等待该方法执行完成即可向客户端返回Ok(),但后端需要获取该方法的响应来继续后续流程,也就是要在后端对其执行await操作。

示例代码

try
{
    //...
    var response = await SendMessageAsync("test"); //无需等待响应,直接返回Ok()
    //使用response执行后续操作
}
catch(MyException ex)
{
    //记录日志
}
catch(Exception ex)
{
    //记录日志
}

更新说明

我找到了一个解决方案,使用Task.Run()(即“即发即弃”模式),或许能帮助到其他人,感谢各位的解答。

解决方案1

_ = Task.Run(() => SendMessageAsync(), task => 
{
   //SendMessageAsync()执行失败时会进入此逻辑
   var exception = task.InnerException.Exception;
   //记录异常日志
}, TaskContinuationOptions.OnlyOnFaulted)

内容的提问来源于stack exchange,提问作者jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:01:16