c#定时执行一些操作
不考虑windows计划任务这个途径
我要每隔几个小时执行一些操作(比如删除大量文件,可能要耗费一定时间),应该如何做?
之前是简单地用一个死循环
while (true)
{
DoAction();
Thread.Sleep(3600*1000);
}
每隔一个小时进行一次操作,但是发现不稳定,有时候程序就死在那里,再也不运行下去了。
请各位高手给个思路,谢谢。
------解决方案--------------------用timer吧,或者用线程,线程内部sleep
------解决方案--------------------你那个while循环本身没有问题。
不过要保证DoAction不会死机,不会抛出未处理异常。
------解决方案--------------------线程要是不会用的话就是timer把最常见的定时处理方式
------解决方案--------------------用timer就行啊。
------解决方案--------------------timer ,我写过59秒判断一次,程序跑几个月都没问题
------解决方案--------------------肯定是timer
------解决方案--------------------timer
应该可以吧
------解决方案--------------------如果doaction里是执行sql操作为主可以改成用sqlserver自带的计划任务来执行。
如果不是,可以用windows服务来做。
循环的代码最好放到线程里执行,另外加上日志输出,看看程序为什么死。