向计时器传递一个对象

本文关键字:一个对象 计时器 | 更新日期: 2023-09-27 18:16:22

如果我检查sender参数内的调试器,我可以看到我的对象及其所有属性,但我如何访问这些属性?我试过MyClass mc = MyClass as sender,但它是空的。

这是我的计时器的滴答事件:

private void timerP_Tick(object sender, EventArgs e)
{
}

下面是启动定时器的事件:

void class_startTimerEvent(MyClass class)
{
    timerP.Tag = class;
    if (InvokeRequired)
        this.Invoke((MethodInvoker)delegate { timerP.Start(); });
    else
        timerP.Start();
}

向计时器传递一个对象

对于使用标准实现的EventHandler, sender参数始终是引发事件的对象,在您的情况下,它是timerP对象。

你可以使用

获取MyClass对象
var timer = (Timer) sender;
var myClass = (MyClass) timer.Tag;