我想知道是否有办法根据'持续时间来确定刚过了哪个计时器。或者别的什么,因为我通过使用'发送者'来创建许多具有不同间隔或持续时间的个人计时器。或者' e'无需创建多个计时器或已过去的事件处理程序。
代码:
public void timePowerup(float duration)
{
Timer timedDelay = new Timer();
timedDelay.Interval = duration;
timedDelay.AutoReset = false;
timedDelay.Elapsed += new ElapsedEventHandler(timedDelayElapsed);
timedDelay.Enabled = true;
}
public void timedDelayElapsed(object sender, ElapsedEventArgs e)
{
}
答案 0 :(得分:4)
您可以使用sender
。它是触发当前事件的计时器。尝试
public void timedDelayElapsed(object sender, ElapsedEventArgs e)
{
Timer timer = (Timer)sender;
}
来自Events, Delegates, and CLR Event System Conventions:
按照惯例,.NET Framework中的事件委托有两个参数,即引发事件的源(由 sender 参数表示)和事件的数据(由表示) e 参数。