3.7 使用计时器
本节将描述如何使用System.Threading.Timer对象来在线程池中创建周期性调用的异步操作。
3.7.1 准备工作
为了学习本节,你需要安装Visual Studio 2015。除此之外无需其他准备。本节的源代码放置在BookSamplesChapter3Recipe6目录中。
3.7.2 实现方式
请执行以下步骤来了解如何在线程池中创建周期性调用的异步操作:
1.启动Visual Studio 2015。新建一个C#控制台应用程序项目。
2.在Program.cs文件中加入以下using指令:
3.在Main方法下面加入以下代码片段:
4.在Main方法中加入以下代码片段:
5.运行程序。
3.7.3 工作原理
我们首先创建了一个Timer实例。第一个参数是一个lambda表达式,将会在线程池中被执行。我们调用TimerOperation方法并给其提供一个起始时间。由于无须使用用户状态对象,所以第二个参数为null。然后指定了什么时候会第一次运行TimerOperation,以及之后再次调用的间隔时间。所以第一个值实际上说明一秒后会启动第一次操作,然后每隔两秒再次运行。
之后等待6秒后修改计时器。在调用_timer.Change方法一秒后启动TimerOperation,然后每隔4秒再次运行。
计时器还可以更复杂!
可以以更复杂的方式使用计时器。比如,可以通过Timeout.Infinite值提供给计时器一个间隔参数来只允许计时器操作一次。然后在计时器异步操作内,能够设置下一次计时器操作将被执行的时间。具体时间取决于自定义业务逻辑。
最后等待回车键被按下以结束整个应用程序。在程序运行过程中可以看到自从程序启动后经历的时间。
时间: 2024-12-04 22:29:21