我有一个服务来旋转处理呼叫的服务器。服务器只能在特定条件下启动,服务应该尝试在放弃之前启动服务器几分钟。因此,我只使用服务接口方法来启动一个处理"尝试启动服务器的线程,如果失败" -logic则重试。但是现在我需要添加服务的终止,如果服务器在5分钟之后没有成功启动。问题是,我不知道如何整理回拨给服务的电话"主要"线程,因为,据我所知,它不是一个STA线程,我只能使用一个调度程序。我的理解是,为了能够System.Exit(1)
我的服务,我必须这样做。有什么建议吗?
澄清要点:
答案 0 :(得分:0)
我正在给你一个提示,如果你没有设法实现它,我将在稍后编辑它,并提供更多细节。如果要停止服务,则应调用ServiceBase.Stop
方法。
启动任务以执行“尝试启动服务器并在失败时重试”并添加一个继续(或传递Stop
作为Action
参数),该任务将在任务完成时执行结果(或者,如果您在未能启动时抛出异常,则验证Task.IsFaulted
并调用Stop()
如果为真。)