我使用完成端口做的一个服务器程序,在控制台下运行正常,
现在想把这样的程序放到一个service服务中,作为一个服务在后太运行
程序运行良好
但是在该服务停止时,就出现了一些问题
系统提示说不能停止该服务我在服务停止的函数中并没有任何多线程退出的代码
请问该怎么样处理这样的情况

解决方案 »

  1.   

    响应的错误是---------------------------
    Microsoft Management Console
    ---------------------------
    在 本地计算机 无法终止 AA 服务。错误 1053: 服务并未及时响应启动或控制请求。 
    ---------------------------
    确定   
    ---------------------------
      

  2.   

    通常的做法是, 定义一个全局的 事件 信号, 所有的线程(包括主线程) 都会不断地检测这个信号.然后当它有信号时结束自己. 也有间接结束的某些线程也是可以的,比如主线程响应这个事件,然后调用 线程池的 StopProcess 来 结束线程池.然后当线程池完全结束之后, 主线程也结束.服务向控制器注册的控制函数会收到服务控制器来的 STOP_SERVER 的指令, 你在这个时候设置停机的信号,然后直接返回.主线程收到信号,向服务控制器报告正在停止服务,然后结束所有的处理线程, 等所有线程都正确结束之后, 主线程向控制器报告服务已经停止,然后主线程自己结束. 大致过程就是这样的