C# Timer 中计时的问题
源码是这样的
private void timer_works_Tick(object sender, EventArgs e)
{
this.timer_works.Stop();
Thread th = new Thread(new ThreadStart(this.getCon));
th.Start();
this.timer_works.Start();
}
timer_works.Interval 设定是 一分钟,
timer_works 中掉用的方法执行完毕可能超过1分钟,
接着就出现问题了,timer_works中的第一次循环还没有完成,
第二次的循环又开始了.我想要的效果是timer_works中方法执行完毕后,
在计时1分钟后在执行此方法.
.我用 Stop()和Star()来控制没有能实现效果,
有那位高手指点下要则么做.
------解决方案--------------------换个思路做,也许会更好。
------解决方案--------------------
不用线程肯定是顺序执行,
如果想用线程的话,就搞一个全局变量吧,timer负责监听该变量,
如果线程运行结束了,给全局变量一个信号,
然后在timer里监听到该全局变量的改变后,就可以继续其他工作了。
------解决方案--------------------请使用Invoke来做跨线程处理
------解决方案--------------------
------解决方案--------------------private void timer_works_Tick(object sender, EventArgs e)
{
this.timer_works.Stop();
Thread th = new Thread(new ThreadStart(this.getCon));
th.Start();
th.join;
this.timer_works.Start();
}
------解决方案--------------------用回调函数