我有以下课程:
class MyTimer
{
class MyTimerInvalidType : SystemException
{
}
class MyTimerNegativeCycles : SystemException
{
}
private Timer timer = new Timer(1000);
private int cycles = 0;
public int Cycle
{
get
{
return this.cycles;
}
set
{
if(value >= 0)
this.cycles = value;
else
throw new MyTimerNegativeCycles();
}
}
private void timer_Tick(object sender, ElapsedEventArgs e)
{
try
{
this.Cycle--;
}
catch
{
this.Cycle = 0;
timer.Stop();
}
}
public MyTimer()
{
this.Cycle = 20;
timer.Elapsed += new ElapsedEventHandler(timer_Tick);
timer.Start();
}
}
在我的 MainWindow 类中,我有一个列表,我在按下按钮时添加了一个 MyTimer:
private List<MyTimer> timers = new List<MyTimer>();
private void testbtn_Click(object sender, RoutedEventArgs e)
{
timers.Add(new MyTimer());
}
我试图将标签作为引用传递给 MyTimer 类并对其进行更新,但这不起作用(无法从另一个线程访问 UI 元素)。
在标签中显示 MyTimer.Cycle 以便在每次更改值时更新的好方法是什么?
我必须能够将每个 MyTimer 与代码“绑定”到不同的标签(或根本不将其绑定到标签)。