如何发送的参数传递给System.Timers.Timer的 [英] How to pass the sender parameter to the system.timers.timer
本文介绍了如何发送的参数传递给System.Timers.Timer的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你如何通过发送参数到 System.Timers.Timer的
在.NET?
How do you pass the sender parameter to the system.timers.timer
in .NET?
timer1[timer] = new System.Timers.Timer(interval);
timer1[timer].AutoReset = true;
timer1[timer].Elapsed += new ElapsedEventHandler(datatransferEvent);
timer1[timer].Start();
GC.KeepAlive(timer1[timer]);
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
try
{
serverreconnected.Stop();
reconnect(_opcServer);
}
finally
{
serverreconnected.Start();
}
}
例如:
System.Threading.Timer timer1;
timer1= new System.Threading.Timer(databaseTrensfer, row, dueTime, interval);
public void databaseTrensfer(object row)
{
DataRow rowE = (DataRow)row;
}
行传递给参数的函数 databaseTrensfer()
我要的发件人参数传递到事件。
I want to pass the the sender parameter to the event.
在此先感谢。
推荐答案
我喜欢zabulus的方法,但是还存在另一种。创建继承System.Timers.Timer的自己的Timer类,它可以保存任何你想要的。我选择了做基本对象标签属性,因此它可以在其他项目中重复使用。
I like zabulus's method, but there is an alternative. Create your own Timer class that inherits from System.Timers.Timer and it can hold anything you want. I chose to do the basic object Tag property so it can be reused in other projects.
public class MyTimer : System.Timers.Timer
{
public MyTimer(double interval)
: base(interval)
{
}
public object Tag { get; set; }
}
MyTimer timer;
void test(object sender)
{
timer = new MyTimer(1);
timer.Tag = sender;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
MyTimer timer = (MyTimer)sender;
object tag = timer.Tag;
// do whatever you want with tag
}
然后调用测试(与任何价值,你想传递)
。
这篇关于如何发送的参数传递给System.Timers.Timer的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文