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

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贡献1806条经验 获得超8个赞

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

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


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

TA贡献1833条经验 获得超4个赞

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

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

添加回答

举报

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