System.Windows.Forms.Timer定时器的使用 不阻塞更新UI线程
				
									
					
					
						|  | 
							admin 2024年8月2日 21:25
								本文热度 2360 | 
					
				 
				  
public partial class YourForm : Form{    private System.Windows.Forms.Timer timerOpenClose;
    public YourForm()    {        InitializeComponent();        InitializeTimer();    }
    private void InitializeTimer()    {        timerOpenClose = new System.Windows.Forms.Timer();        timerOpenClose.Interval = 2000; // 设置定时器间隔为2000毫秒        timerOpenClose.Tick += TimerOpenClose_Tick;    }
    在C#中,即使已经在类的顶部声明了一个成员变量timerOpenClose,仍然需要创建一个新的System.Windows.Forms.Timer对象并将其赋值给这个变量。声明只是告诉编译器存在一个名为timerOpenClose的变量,但它还没有被初始化,也就是说,它还没有与任何实际的Timer对象关联。
    初始化过程,即new System.Windows.Forms.Timer(),是创建一个Timer对象实例并将其赋值给timerOpenClose变量的过程。
- 定时器初始化:首先,你需要创建一个 - System.Windows.Forms.Timer实例,并设置其- Interval属性,这个属性决定了定时器事件触发的频率(以毫秒为单位)。
 
- 绑定事件处理程序:然后,你需要为定时器的 - Tick事件绑定一个事件处理程序。这个事件处理程序是一个方法,它将在每次定时器间隔到期时被调用。
 
- 启动定时器:通过调用定时器的 - Start方法,定时器开始工作。一旦定时器启动,它将开始计数,直到达到设置的- Interval值。
 
- 定时器计数:定时器在后台运行,当计数器达到 - Interval指定的时间长度时,定时器触发- Tick事件。
 
- 执行事件处理程序:当 - Tick事件被触发时,绑定的事件处理程序将被执行。在这个处理程序中,你可以放置任何你想要定时执行的代码。
 
    以下是一个简单的示例,展示了如何设置和启动一个定时器,以及如何处理 Tick 事件:
using System;using System.Windows.Forms;
public partial class YourForm : Form{    private System.Windows.Forms.Timer timer;
    public YourForm()    {        InitializeComponent();        InitializeTimer();    }
    private void InitializeTimer()    {        // 创建定时器实例        timer = new System.Windows.Forms.Timer();         // 设置定时器间隔为1000毫秒(1秒)        timer.Interval = 1000;         // 绑定Tick事件处理程序        timer.Tick += Timer_Tick;    }
    private void StartTimerButton_Click(object sender, EventArgs e)    {        // 启动定时器        timer.Start();    }
    private void Timer_Tick(object sender, EventArgs e)    {        // 这里的代码将在每次定时器间隔到期时执行        Console.WriteLine("Timer ticked at " + DateTime.Now);         // 可以在这里添加更多的逻辑,例如更新UI、处理数据等    }}
    在这个示例中,Timer_Tick 方法会在每次定时器间隔(1秒)到期时被调用,并在控制台输出当前时间。可以通过点击一个按钮(比如 StartTimerButton)来启动定时器。然后在实际的Windows窗体应用程序中,更新UI应该总是在UI线程上进行,并且应该使用窗体控件来显示信息,而不是控制台输出。
该文章在 2024/8/8 5:34:21 编辑过