为多个定时器传参数

xiaoxiao2021-03-01  12

using System; using System.Collections.Generic; using System.Timers; namespace ConsoleApplication3 { public class MyTask { public string TaskName { get; set; } } public class MyTimer : Timer { public MyTask Task { get; set; } public MyTimer(MyTask task) { Task = task; this.Elapsed += new System.Timers.ElapsedEventHandler((s, e) => TimerExec(s, e)); } private void TimerExec(object sender, System.Timers.ElapsedEventArgs e) { System.Timers.Timer timer = (System.Timers.Timer)sender; Console.WriteLine("Timer Interval: {0}, task: {1}", timer.Interval, Task.TaskName); } } class Program { static void Main(string[] args) { List<MyTask> list = new List<MyTask>() { new MyTask(){ TaskName="任务1" }, new MyTask(){ TaskName="任务2" } }; int i = 1; foreach (MyTask task in list) { MyTimer timer = new MyTimer(task); timer.Interval = i * 3000; timer.Enabled = true; timer.Start(); i++; } Console.Read(); } } }

如上就好, 只能继承  Timer 类, 再加上参数。

有些博客里写的事件再加一个参数没用, 最终的参数全变成了最后一个,只能用于只有一个定时器的情况。

转载请注明原文地址: https://www.6miu.com/read-3200336.html

最新回复(0)