gpt4 book ai didi

c# - SignalR hub 是否自托管?

转载 作者:太空狗 更新时间:2023-10-29 23:31:14 25 4
gpt4 key购买 nike

我正在从事一个 SignalR 集线器启动 12 个短期运行线程 (new Thread()) 的项目。每个线程使用 websockets 向客户端报告完成。这些线程不是 CPU 密集型的,而是从其他网络服务获取一些信息。

现在我的困境是:我应该创建一个作为服务运行的独立自托管 signalR 集线器应用程序,还是应该只将集线器包含在我的 asp.net MVC 项目中?

什么是最佳性能?

最佳答案

在 .net 4.5 及更高版本中执行此操作的正确方法是执行此单线程异步

ASP.Net should NEVER be creating new threads .在 ASP.Net 中显式使用线程会带来巨大的性能影响。

您还应该知道线程是有限 CPU 资源的抽象(您通过声明您的线程不是 CPU 密集型来注意到这一点)。从 .net 4.5 开始,这应该告诉您不应该使用线程。 Instead, in this case you should be using a threadless I/O api to call your webservices.我建议您使用 TAP(又名 async await)模式,它基本上是 .net 4.5。

这应该允许您使用功能适中的机器扩展到数千个并发请求。

如果您拥有所有这些,使用 TAP,ASP.Net MVC/IIS 将能够很好地处理大规模并行化和“线程”。在这种情况下,我会强烈建议不要使用 Windows 服务,因为使用 IIS 作为 Bootstrap (处理生命周期,并在服务死机时重新启动服务)会更稳定.

关于c# - SignalR hub 是否自托管?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23506633/

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