为了账号安全,请及时绑定邮箱和手机立即绑定

windows服务问题(超高手进)

windows服务问题(超高手进)

慕沐林林 2018-07-24 15:20:37

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();
        }

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


查看完整描述

2 回答

?
慕森卡

TA贡献1702条经验 获得超9个赞

因为 你的service 永远不会从 onstart method里退出.  一直在while loop里 运行,  onstop 没有机会执行。

你可以用一个 backgroundWorker,  onstart 里 初始化worker,   工作在 worker 里做,  onstop把worker停止。


查看完整回答
反对 回复 2018-07-30
?
潇潇雨雨

TA贡献1743条经验 获得超3个赞

把你的isrun设置为静态的试试。

查看完整回答
反对 回复 2018-07-30
  • 2 回答
  • 0 关注
  • 549 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信