用c#timer计算编译问题

时间:2014-05-17 13:45:00

标签: c# .net visual-studio-2010 timer system.net

我有一个带有标签的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运行何时发生。

1 个答案:

答案 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是一个事件。你无法添加它。它甚至没有意义。