zoukankan      html  css  js  c++  java
  • Windows service

    昨天部署一个自己写的windows service,在服务器上一直无法启动,启动的过程需要很长时间,然后直接被停止,后来查看了一下代码,发现在service的OnStart里面是这样写的

             protected override void OnStart(string[] args)

            {
                monitor = new WebSiteMonitor();
                monitor.StartMonitor();            
            } 

    其中WebSiteMonitor.StartMonitor()里面有取网站信息并访问,获取状态的操作,这是一个相对比较耗时的工作——问题就是出在这了 

    解决方案: 这儿可以另起一个线程来启动这个监控程序 

              protected override void OnStart(string[] args)

            {
                WebSiteMonitor monitor = new WebSiteMonitor();
                _thread = new Thread(new ThreadStart(monitor.StartMonitor));
                _thread.Start();
            }

    这样的话这个耗时的操作是在另一个线程里执行的,服务的主线程自然可以顺利启动了 

  • 相关阅读:
    BZOJ2938 POI2000病毒
    HDU2222 AC自动机模板
    BZOJ1029 [JSOI2007]建筑抢修
    BZOJ1027 [JSOI2007]合金
    BZOJ1025 [SCOI2009]游戏
    BZOJ1257 [CQOI2007]余数之和sum
    BZOJ1021 SHOI2008循环的债务
    BZOJ1030 [JSOI2007]文本生成器(AC自动机)
    POJ2728 Desert King
    POJ2976 Dropping tests
  • 原文地址:https://www.cnblogs.com/bmy_light/p/2365149.html
Copyright © 2011-2022 走看看