gpt4 book ai didi

c# - HTTP 请求处于挂起状态,直到执行 MediatR 通知

转载 作者:行者123 更新时间:2023-11-30 22:51:27 25 4
gpt4 key购买 nike

var response = SaveOrderInDB();
OrderCreatedEvent orderCreatedEvent = new OrderCreatedEvent(x, y, z);
_requestRouter.Publish(orderCreatedEvent);
return response;

根据 MediatR 文档,通知是“即发即弃”功能。我不使用 await 因为我想在发布通知后立即将“响应”对象返回给客户端 Angular 应用程序。但是,当我在通知处理程序中放置断点时,我在 Chrom 开发工具中看到请求仍处于挂起状态,等待通知完成。

 public Task Handle(OrderCreatedEvent notification, CancellationToken cancellationToken)
{
return Task.CompletedTask; // Breakpoint is here
}

我怎么能不等通知完成呢? enter image description here

最佳答案

如评论中所述,断点阻止它们完成。

如果您不相信,请将您的 NotificationHandler 更改为如下内容:

public async Task Handle(OrderCreatedEvent notification, CancellationToken cancellationToken)
{
await Task.Delay(5000);

Console.Write("Done."); //put a breakpoint here
}

Console.Write 方法上放置一个断点,然后运行您的应用程序,并调用您的端点。

您会看到响应没有挂​​起,5 秒后,您的断点被命中。
(如果您没有设置断点,则将“完成”写入控制台)

关于c# - HTTP 请求处于挂起状态,直到执行 MediatR 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59162165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com