小编sol*_*897的帖子

选择不在 ASP.NET Core WebAPI 控制器中等待异步函数运行

场景如下:

  • 后端:Asp.NET Core WebAPI 2.2
  • 前端:使用 API 的 iOS 和 Android

我有一个功能,允许用户向其他用户发送消息。消息的发送是在异步操作中完成的:

public async Task<IActionResult> CreateMessage

此操作按顺序执行以下操作:

  1. 验证
  2. 等待消息持久化到 DB
  3. 通过 SignalR 等待相关客户端的通知
  4. 不等待通过 Azure 通知中心发送推送通知。
  5. 返回 200 OK。

动作的最后两行如下:

_notificationHubProxy.SendNotification(messageToReturnResource.SenderName, messageToPush, recipientId);

return Ok(messageToReturnResource);
Run Code Online (Sandbox Code Playgroud)

SendNotification 是异步的,但我选择不等待它以避免因等待请求完成而导致 UI 锁定。目前这一切似乎都运行良好。

我的问题实际上如下:这是 oky(即不等待),还是这是一个编写错误代码的示例,当我有很多客户端使用该应用程序时会导致问题?

问候

c# asynchronous async-await asp.net-web-api

4
推荐指数
1
解决办法
2311
查看次数

标签 统计

asp.net-web-api ×1

async-await ×1

asynchronous ×1

c# ×1