System.Threading.Timer类的TimerCallback 委托(转载)

摘要:
只要使用Timer,就必须保留对它的引用。对于任何托管对象,如果没有对计时器的引用,计时器将被垃圾收集。即使计时器仍处于活动状态,它也将被回收。使用TimerCallback委托指定希望Timer执行的方法。DueTime:调用回调之前延迟的时间量。指定超时无限可以禁用定期终止。此外,这只是TimerCallback委托的一个简单应用程序的演示。

System.Threading.Timer 是一个使用回调方法的计时器,而且由线程池线程服务,简单且对资源要求不高。

 

只要在使用 Timer,就必须保留对它的引用。对于任何托管对象,如果没有对 Timer 的引用,计时器会被垃圾回收。即使 Timer 仍处在活动状态,也会被回收。当不再需要计时器时,请使用 Dispose 方法释放计时器持有的资源。

 

使用 TimerCallback 委托指定希望 Timer 执行的方法。计时器委托在构造计时器时指定,并且不能更改。此方法不在创建计时器的线程中执行,而是在系统提供的线程池线程中执行。

 

创建计时器时,可以指定在第一次执行方法之前等待的时间量(截止时间)以及此后的执行期间等待的时间量(时间周期)。可以使用 Change 方法更改这些值或禁用计时器。

 

Demo application:

应用场景:在windows form程序自动执行某项工作后,希望其windows form能够自动关闭。

代码设计:(1)首先声明Timer变量:

privateSystem.Threading.TimertimerClose;

 

2)在上述自动执行代码后面添加如下Timer实例化代码:

// Create a timer thread and start it

timerClose = newSystem.Threading.Timer(newTimerCallback(timerCall), this, 5000, 0);

 

Timer构造函数参数说明:

Callback一个 TimerCallback 委托,表示要执行的方法。

State一个包含回调方法要使用的信息的对象,或者为空引用(Visual Basic 中为 Nothing

dueTime调用 callback 之前延迟的时间量(以毫秒为单位)。指定 Timeout.Infinite 以防止计时器开始计时。指定零 (0) 以立即启动计时器。

Period:调用 callback 的时间间隔(以毫秒为单位)。指定 Timeout.Infinite 可以禁用定期终止。

 

3)定义TimerCallback委托要执行的方法:

privatevoidtimerCall(objectobj)

{

      timerClose.Dispose();

      this.Close();

}

 

当然,除了使用上述System.Threading.Timer类的TimerCallback 委托机制外,应该还有很多其他的办法。另外,这里只是demoTimerCallback委托的简单应用。

免责声明:文章转载自《System.Threading.Timer类的TimerCallback 委托(转载)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇因子分析(Factor Analysis)access 字段类型转换下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

matlab练习(创建GUI)

matlab创建GUI 方法1:使用GUIDE菜单式操作 在matlab中输入guide,可以打开guide创建GUI的图形界面,按菜单操作即可 注:matlab未来版本可能会取消掉这种方式 方法2:编写代码创建GUI下面是一个简单的以代码方式创建GUI的例子,其中关键的一些点包括1. 创建一个figure object作为container2. 通过`u...

layui.js源码分析

/*! @Title: Layui @Description:经典模块化前端框架 @Site: www.layui.com @Author: 贤心 @License:MIT */ ;!function(win) { "use strict"; var Lay = function() { this.v...

从网页抓取数据的一般方法

首先要了解对方网页的运行机制 ,这可以用httpwacth或者httplook来看一下http发送和接收的数据。这两个工具应该说是比较简单易懂的。这里就不再介绍了。主要关注的内容是header和post的内容。一般会包括cookie,Referer页面和其他一些乱其八糟可能看不懂的变量,还有就是正常交互的参数,比如需要post或者get的querystri...

explorer.exe命令行

explorer.exe命令行 说明: 当进程中没有explorer.exe时,运行explorer.exe即启动外壳程序;当外壳程序已经启动时,运行explorer.exe将会打开“我的文档"。 参数 /n 为默认选择内容打开一个新的单窗格窗口。默认选择内容通常是安装windows的驱动器的根目录 /e 使用默认视图启动windows资源管理器 /roo...

C#获取当前路径的方法

C#获取当前路径的方法如下: 1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName -获取模块的完整路径。 2. System.Environment.CurrentDirectory -获取和设置当前目录(该进程从中启动的目录)的完全限定目录。 3. System.IO...

PHP 执行系统外部命令 system() exec() passthru()

PHP中调用外部命令,可以用如下三种方法来实现: 方法一:用PHP提供的专门函数(四个): PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec() 1)exec() 原型: string exec( string $command[, array&$output[,...