c# timer 时间问题
源码是这样的privatevoidtimer_works_Tick(objectsender,EventArgse){this.timer_works.Stop();Th...
源码是这样的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()来控制没有能实现效果,有那位高手指点下要则么做. 展开
{
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()来控制没有能实现效果,有那位高手指点下要则么做. 展开
5个回答
2013-10-27
展开全部
是的,你用的这个定时器不行。System.Windows.Forms.Timer 使用UI线程(主线程)计时,如果你窗体操作太多,定时器就会延时,误差很大。建议更换使用 System.Timers.Timer,它使用独立线程计时,受干扰更少、定时触发更精确。不过使用时要注意处理跨线程操作。
C#共有三个Timer:System.Windows.Forms.Timer、System.Timers.Timer和System.Threading.Timer。后两者都是独立线程计时。
C#共有三个Timer:System.Windows.Forms.Timer、System.Timers.Timer和System.Threading.Timer。后两者都是独立线程计时。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-27
展开全部
C#中timer有个属性是interval是执行的时间间隔,以毫秒为单位的。然后,timer的Start()和Stop()方法是控制timer开始和结束。这个不应该写在方法timer_works_Tick里面因为当执行到Stop时,就停止反复执行,然后向下执行到Start方法时,又开启了反复执行(就是立即执行了timer_works_Tick方法)。这样就没有循环执行的作用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-27
展开全部
在建立一个Timer 用他来监听 线程是否结束如果结束了, 就this.timer_works.Start();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-27
展开全部
设置Interval时间就可以了.把线程放里面不太好吧?这样会相隔一分钟实例化一个线程调用方法的...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
timer1.interval
=
5000;
然后在timer1的tick事件里写timer1.stop();
对楼主要干什么不太了解,不知道是不是这个意思.
=
5000;
然后在timer1的tick事件里写timer1.stop();
对楼主要干什么不太了解,不知道是不是这个意思.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询