我有一个带有标签的Windows表单,以及一个名为aTimer
的 system.net计时器。
计时器是在外部类中创建的,如下所示:
// Create a timer with a 3 minute interval.
common.aTimer = new System.Timers.Timer(3000);
// Hook up the Elapsed event for the timer.
common.aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
// Set the Interval to 3 minutes (180000 milliseconds).
common.aTimer.Interval = 180000; // 3000; //
common.aTimer.Enabled = true;
mTimerRunning = true;
并以我的形式运行代码OnTimedEvent
以启动后台工作程序
我想在我的标签上显示下一步行动之前的秒数。
我尝试了这个,但它不会编译:
lblStatus.BeginInvoke(new Action(() =>
{
lblStatus.Text = "timer running - Check inbox in " & common.aTimer.Interval - common.aTimer.Elapsed & " seconds!";
}));
我有编译错误The event 'System.Timers.Timer.Elapsed' can only appear on the left hand side of += or -=
那么这样做的正确方法是什么?
理想情况下,计时器的每个刻度我都会更新标签,以显示nxt运行何时发生。
答案 0 :(得分:1)
我猜你是来自VB背景。
以下不是有效的c#代码。
lblStatus.Text = "timer running - Check inbox in " & common.aTimer.Interval - common.aTimer.Elapsed & " seconds!";
&
不用于c#中的字符串连接,而是使用+
运算符。 Or even better。aTimer.Interval
是双倍的,aTimer.Elapsed
是一个事件。你无法添加它。它甚至没有意义。