日期:2014-05-18  浏览次数:20804 次

C# 怎样使windows服务不能停止
我创建了一个windows服务,在调用一个方法时,由于此方法执行时间较长,如何使在此方法执行时使服务不能停止
if (last.ComputeTimeSpan() >= ReadCopyDataXML.GetTimespan() || !last.GetLastCopyStatus())
  {
  dosth();
  }
如例,如何使在dosth()调用时服务不能停止

------解决方案--------------------
不能。madn上解释:

服务已启动。在服务启动后不能更改 CanStop 属性。
------解决方案--------------------
如果dosth是个循环体,最好加上bool判断,保证能够在规定时间退出,否则会引发异常

http://msdn.microsoft.com/zh-cn/library/system.serviceprocess.servicebase.onstop(VS.80).aspx
------解决方案--------------------

给服务做依赖守护