关于VB timer控件的问题。 Timer控件可以有规律地间隔一段时间执行一次代码,那么它是执行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于VB timer控件的问题。 Timer控件可以有规律地间隔一段时间执行一次代码,那么它是执行相关的知识,希望对你有一定的参考价值。

关于VB timer控件的问题。 Timer控件可以有规律地间隔一段时间执行一次代码,那么它是执行Timer事件下的代码还是可以执行其它控件事件下的代码?

首先,timer控件是用来周期性执行一段代码,也就是timer下的代码,如果你想执行其他控件的代码,你只要在timer控件的代码下调用那个控件的代码就行 参考技术A 执行
Private Sub Timer1_Timer()
......
end sub
之间的代码。

关于C#中的timer控件!

比如,这个控件里面的语句执行比较复杂(执行时间比较长),
比如,这个空间的间隔是5秒钟,而里面的程序执行完毕需要10秒钟(比如是复制东西)。那最终会发生什么后果???复制过程会完成复制吗??
求解答!

会完成。但是需要注意:
1.System.Windows.Forms.Timer 是单线程的,它只在UI线程中运行,定时精度约55ms,当前的事件没处理完成时,下一次事件不会触发;过久地处理会导致界面假死。
2.System.Threading.Timer 是多线程的,触发的事件在ThreadPool里面的线程中运行,所以当前事件没处理完成时,也会另开一个新线程处理。追问

恩,回答的好透彻!很感谢……不过你说的System.Threading.Timer这个是控件吗??如何使用呢??我还是初学者。

追答

那是个类,不是控件,只能在代码中创建和使用。

参考技术A timer控件每到时间间隔后,会启动一个线程,执行Elapsed方法里的代码。
你所说的控件间隔是5s,执行语句需要10s,这不会有问题,因为他们是2个线程。除非你在这两个线程中使用了公共的变量,或使用了相同的io资源,会产生问题。
参考技术B 会完成复制吧。最后的效果也许是你延时5秒。拷贝东西10秒,再延时5秒,后面再干别的什么的。
也就是说你的间隔五秒要在第一次事件结束以后才开始重新计时。
参考技术C System.Threading.Timer 是一个类。不仅在窗体程序中可以使用,在控制台程序,在WINDOWS服务中都可以使用。
使用的大体代码如下:
System.Timers.Timer timer = new System.Timers.Timer();
timer.AutoReset = true;
timer.Interval = 1000d;
timer.Enabled = true;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);

void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)

//时间到了之后处理的代码


其实用法和FORM里面的按个TIMER是一样的,你在FORM上把TIMER控件拖到窗体上之后可以看看窗体对应的那个designer.cs文件里相关的代码。
参考技术D 你需要用new thread,多线程处理,但是跨线程取值是比较麻烦的,最好能采用别的办法。
比如:先把timer关掉,执行程序,执行完,打开timer

以上是关于关于VB timer控件的问题。 Timer控件可以有规律地间隔一段时间执行一次代码,那么它是执行的主要内容,如果未能解决你的问题,请参考以下文章

vb timer控件的用法

vb怎么每隔一秒自动点击按钮

vb中timer怎么用

delphi中的timer 控件代码问题

请问如何让timer控件每过一秒钟触发一次?

C#用timer控件做循环周期的问题