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