C# 延时处理或者暂停执行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 延时处理或者暂停执行相关的知识,希望对你有一定的参考价值。

在Timer_Tick事件中需要使此事件延迟或者暂停一下,比如
private void timer1_Tick(object sender,EventArgs e)

...........; // 执行代码
delay(second); //插入延时函数
...........;// 执行代码

求解这个delay(second)要怎么编写或者说是用一种什么样的方式来实现延时功能?
thread.sleep()是不可行的,因为这个time1_tick一直存在,用sleep()函数会导致死锁。望各位不惜赐教。

给个建议,没有验证,希望对你有帮助。
在timer1_Tick这个方法的第一句话加上timer1.Enabled = false;在结束时将其设置为true。这样应该可以保证Thread.Sleep的正常执行。
并且也要看一下timer的注意事项,如果设置间隔10秒,但在tick方法当中执行操作10秒,那么执行完成后,会立刻执行下次操作。
参考技术A 没用过C#,但方法都差不多吧,你可以创建一个事件delay这个事件的信号由另一个定时器置为,但前提前面用Application.DoEvents()允许执行其他事件,并且关闭Timer1,而本函数等delay事件有信号,有信号后则执行,并释放delay事件和定时器。。。。 参考技术B 新建一个timer,在delay以后执行,然后将延时之后执行的代码交由新的timer执行。
C#的闭包特性可以在一个函数内简介地做到这一点。
Timer t1 = new Timer(10000);
//实例化Timer类,设置间隔时间为10000毫秒;
t.Elapsed += (sender, e) =>

...........; // 执行代码
Timer t2 = new Timer(delayTime);
t2.Elapsed += (sender2, e2)=>

...........;// 执行延时代码


t2.AutoReset = false; // 只执行一次
t2.Enabled = true;

t.Enabled = true;

以上是关于C# 延时处理或者暂停执行的主要内容,如果未能解决你的问题,请参考以下文章

如何让C#程序在执行中暂停一段时间

delphi真正实现延时暂停功能

python 暂停几秒执行下一步、

一种线程调度策略线程须要的时候执行,不须要的时候暂停

Linux命令之暂停一段时间sleep

windows shell脚本命令中,暂停一段时间用哪个命令?