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()来控制没有能实现效果,有那位高手指点下要则么做.
展开
 我来答
匿名用户
2013-10-27
展开全部
是的,你用的这个定时器不行。System.Windows.Forms.Timer 使用UI线程(主线程)计时,如果你窗体操作太多,定时器就会延时,误差很大。建议更换使用 System.Timers.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时间就可以了.把线程放里面不太好吧?这样会相隔一分钟实例化一个线程调用方法的...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
五从丹脱蕤
2013-11-01 · TA获得超过3.3万个赞
知道小有建树答主
回答量:1.2万
采纳率:33%
帮助的人:773万
展开全部
timer1.interval
=
5000;
然后在timer1的tick事件里写timer1.stop();
对楼主要干什么不太了解,不知道是不是这个意思.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式