前序
工作中往往会用到计时器,此篇中我们关注计时器的失效。由于在项目中webservice的负担较轻,因此决定把计时器放入Web服务中。
实现
在web服务中放入一个任务类,其中放入一个计时器。在类初始化方法中启动计时器。另外放一个持久类,类中专门放置一个静态任务对象。
最后,在Global.asax.cs文件中的Application_Start方法中初始化持久对象。这样就实现了一个计时器。
缺点
这个看似合理的计时器却存在不理想的状况-----最后,计时器停止了。有同学说是因为内存回收了。那么有没有解决之道呢?
解决之道
在内存回收后,重启计时器即可。我们在Application_End方法中叫醒自身。添加自身的web服务,并且打开自身服务中任意一个服务方法即可。
在这里,我们不需要纠结鸡生蛋还是蛋生鸡的问题。因为,鸡蛋既然存在鸡一定存在,他们同时产生,假名鸡、蛋。
Config文件设置
<ISCSWebSerice.Properties.Settings> <setting name="ISCSWebSerice_localService_HipisDeviceFault" serializeAs="String"> <value>http://localhost:83/XXXWebService/Y.asmx</value> </setting> </ISCSWebSerice.Properties.Settings>上例中只需要修改端口号即可,因为调用的是自身的web服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。