C# 等待安全关闭自托管信号机
我有一个C应用程序,它是自托管Signalr2.0.3 据我所知,在关闭进程前不久,我正在处理OWIN主机组件,这是关闭Signal的唯一方法,如下所示:C# 等待安全关闭自托管信号机,c#,signalr,C#,Signalr,我有一个C应用程序,它是自托管Signalr2.0.3 据我所知,在关闭进程前不久,我正在处理OWIN主机组件,这是关闭Signal的唯一方法,如下所示: static void Main(string[] args) { var signalrHost = Microsoft.Owin.Hosting.WebApp.Start(url); //do things signalrHost.Dispose(); Console.WriteLine("Press [Enter] to
static void Main(string[] args)
{
var signalrHost = Microsoft.Owin.Hosting.WebApp.Start(url);
//do things
signalrHost.Dispose();
Console.WriteLine("Press [Enter] to exit ...");
Console.ReadLine();
}
我知道,在调用Dispose之后,没有客户端在中心上调用任何东西。同样,服务器在调用Dispose之前调用HubContext上的方法
但我假设有内部排队的消息,当我调用Dispose时,这些消息会出错。也就是说,Dispose似乎不会等到Signal的所有内容都被刷新
我之所以这么说,是因为我的控制台窗口在退出前充满了信号器错误,而连接的客户端没有收到一些最终消息
现在,如果我放入任意线程。在调用Dispose之前睡眠,所有内容都会完全关闭。但这让我猜测要睡多久
有没有办法知道何时可以调用Dispose而不会导致这些错误?首先为什么要调用Dispose?当客户机需要集线器或完成集线器时,集线器将自动创建和处置。也请看这里我会纠正我的问题,但我不是直接处理集线器,真的只是停止owin网络应用程序,你可以在上面的代码中看到它。。。我在退出应用程序之前就这样做了,所以即使我不直接调用它,它也会自动发生,同样的问题也存在,我需要睡眠不确定的时间来刷新当前活动,我更愿意不丢失它。根据信号员的建议,这不是基础设施关键消息,但我还是希望它在关闭应用程序之前熄灭