由网友(狗屁碍人@)分享简介:你如何通过发送参数到 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)...
你如何通过发送参数到 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
}
然后调用测试(与任何价值,你想传递)
。
相关推荐
最新文章