windows服务问题(超高手进)

private bool isrun;

protected override void OnStart(string[] args)
     {

          isrun =true;
          while (isrun)
            {
                try
                {
                        StreamWriter sw = File.AppendText(@"d:\myserver.txt");
                        sw.WriteLine(string.Format("服务启动,启动时间{0}", DateTime.Now));
                    }
                }
                catch (Exception ex)
                {
                    WirteWinLog(ex);
                }

                System.Threading.Thread.Sleep(10*1000);
            }

        }

        protected override void OnStop()
        {

            isrun=false;
            StreamWriter sw = File.AppendText(@"d:\myserver.txt");
            sw.WriteLine(string.Format("服务停止,启动时间{0}", DateTime.Now));
            sw.Close();
        }

为什么服务发布后无法停止呢????


慕沐林林
浏览 1147回答 2
2回答

慕森卡

因为 你的service 永远不会从 onstart method里退出.  一直在while loop里 运行,  onstop 没有机会执行。你可以用一个 backgroundWorker,  onstart 里 初始化worker,   工作在 worker 里做,  onstop把worker停止。

潇潇雨雨

把你的isrun设置为静态的试试。
打开App,查看更多内容
随时随地看视频慕课网APP