作者tomore (蛋白质)
看板C_Sharp
标题Re: [问题] sleep的问题
时间Wed Sep 30 13:38:13 2009
※ 引述《stin1128 (思思)》之铭言:
: 想请教一下各位
: 我在写一个程式
: 主要是想要让档名1、2、3三张图片出现在picturebox里面
: 但是档名1要停留3秒,再换2停留,再换3
: 我是使用for回圈进去执行
: 我有查到可能可以用sleep执行
: Thread.sleep(3000);
: 可是他会让整个for回圈里面的东西停三秒再一次执行
: 就是没办法先显示图片1,然後停留三秒再显示图片2
: 有想过要用timer写,可是如果在回圈里面,我不会用…
: 先请问各位,sleep可以满足我的需求吗(我有爬文,但还是不懂)
: 或者用timer写比较适合呢,谢谢
依照你的需求 使用timer会是比较好的方法
如果使用sleep程序会中止
sleep设定的时间越久 相对的程序中止时间也越久
如是想要在规则的时间来执行某些程序 使用timer是最好的方法
timer其实就是在固定的时间来中断程式来执行其他的程序
执行完毕後会立刻跳回中断点继续执行
首先件立一个Form.timer
属性 Interval 是设定多久要中断一次 3000就是每3秒中断一次
Enabled 就是开起或关闭 预设值是关闭 只要在程式中设定成true就会开始运作
如果不需要使用时记得要再设定回false
private void timer1_Tick(object sender, EventArgs e)
{
//写入每3秒想执行的程序 以你的需求就是写更换图片的程序
}
这样子不但可以继续其他动作的执行 然後每3秒又会自动换图片
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.131.15.176
1F:推 cole945:Timer并不会中断其他程式..他也是在UI thread上跑的东西, 10/01 17:35
2F:→ cole945:所以不会中断其他UIThread跑的东西,当然包括所有的event 10/01 17:35
3F:→ cole945:handler.. 不然的话, 你还需要考虑到同步的问题.. 10/01 17:36