如何在c#Winforms中自托管SignalR hub?

时间:2017-08-06 05:19:32

标签: c# winforms signalr

有很多教程可以在控制台应用程序或后台服务中设置SignalR selfhost。

e.g。 https://docs.microsoft.com/en-us/aspnet/signalr/overview/deployment/tutorial-signalr-self-host

我在弄清楚如何从winforms中做到这一点时遇到了很多麻烦?这里有一个类似的问题

how to setup a C# winforms application to host SignalR Hubs?

但他们已经使用控制台应用程序回答了...所以这里是在控制台中运行的代码:

        string url = @"http://127.0.0.1:8585/";

        using (WebApp.Start<Startup>(url))
        {
            Console.WriteLine(string.Format("Server running at {0}", url));
            Console.ReadLine();
        }

我知道我可能需要启动一个单独的线程,但它将如何继续运行服务器?我尝试在加载时使用相同的。

1 个答案:

答案 0 :(得分:2)

using块意味着将在Dispose语句创建的实例上执行WebApp.Start<Startup>(url)方法。

在用户按下enter(using)之前,控制台应用程序Console.ReadLine();中的

块未完成。

在wpf using块中毫不拖延地完成。尝试WebApp.Start<Startup>(url);(并在适当的时候停止它,如应用程序退出)