private void FormMain_FormClosing(object sender, FormClosingEventArgs e) { if (!MessageBoxEx.Confirm("确认关闭中心服务器吗(如果关闭,将提示用户关闭投注程序)?")) { e.Cancel = true; return; } // 广播中心服务器关闭命令 Log(Environment.NewLine + "关闭中心服务器,等待其它端自动关闭!"); MQPublishQueue.CloseCenterServer(); // 等待各个服务端都退出 int tryCount = 20; while (tryCount > 0) { if (SessionPool.HasUnConnectedServers()) { Thread.Sleep(500); } else { break; } tryCount--; } // 检查是否有未退出的服务端(除开客户使用的端) if (SessionPool.HasUnConnectedServers()) { MessageBoxEx.Confirm("还存在未关闭的其它控制端软件,请手工退出所有后台采集程序?"); } _cancellationTokenSource.Cancel(); Thread.Sleep(500); }