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

为何Blazor中AsyncEventHandler方法可返回void或Task?

Blazor AsyncEventHandler 回调的返回值问题解答
  • Blazor 中的 AsyncEventHandler 是专为组件事件声明设计的回调结构体,它允许开发者传入两种类型的方法:返回 Task 的异步方法,以及返回 void 的同步方法。
  • 当你把一个同步void方法分配给预期返回 Task 的 AsyncEventHandler 时,Blazor 内部会自动将这个方法包装为一个已完成的 Task(即返回 Task.CompletedTask)。
  • 这种设计的目的是统一事件回调的处理逻辑:不管传入的是同步还是异步方法,调用方都可以用异步的方式处理,不用额外编写适配代码。
  • 需要明确:这里的void方法是纯同步方法,和 async void 异步方法完全不同。async void 是.NET中用于顶级事件的特殊写法,Blazor对它的处理逻辑有区别——会单独捕获其异步执行中的异常,而同步void方法则直接被包装为已完成Task返回。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:22:02