线程在sleep情况下怎么让程序能继续运行
线程在sleep情况下如何让程序能继续运行附上程序的简写版public void StartThread()//主程序调用分方法{wh
线程在sleep情况下如何让程序能继续运行
附上程序的简写版
public void StartThread() //主程序调用分方法
{
while (true)
{
Thread myThread = new Thread(new ThreadStart(Execute)); //Execute为线程方法
Thread.Sleep(120000); //它就停在这里了
}
}
我在程序里调用StartThread的时候,程序就卡在那里了。我知道原因,但是要怎么才能正确使用我就不知道了,如何调用这个StartThread并能让程序继续运行呢? thread 线程
[解决办法]while (true)不就死循环了么
[解决办法]时间到了他就可以继续了。
[解决办法]你sleep了线程也还是运行着..
只是线程的状态是阻塞状态。
你sleep的根本目的是啥?
[解决办法]思路没错
但你为什么要开另一个线程?
[解决办法]看看system.thread.timer
[解决办法]
思路没错
但你为什么要开另一个线程?
如果我不开线程,我要如何实现它的“自动”,让它一直开着,去比较时间,除了开线程,我也想不出好的办法了。。。你说“另一个”,难道同一个也能实现吗?鄙人愚钝,望大侠不吝赐教
你如果重点是时间,那你应该设置一个时间的callback,当时间符合时调用callback函数。
但是你要注意,有可能第一次备份还没完,第二次备份又开始了,这就涉及到线程同步了。
如果单线程的话,是顺序执行的,下一次计时是从这次备份完成后才开始。
而你的while循环要保证的是程序什么时候退出。
所以要看你的需求。
[解决办法]
这种情况用Timer 是最合适不过了.
[解决办法]
线程1,隔2分钟,检测线程2的状态如果不是运行状态,就调用一次.
线程2,实现备份功能即可.