我正在尝试在C#中使用此TCM更新程序的计时器类,并且我不断收到错误:“委托给实例方法不能为'此'。”
我以为我只需要在函数的开头添加“this”,但仍然会出现错误。知道我可能需要做什么吗?
这是我正在使用的代码(函数调用错误5行):
public Form1()
{
InitializeComponent();
updateTimer = new System.Timers.Timer(10000);
updateTimer.Elapsed += new ElapsedEventHandler(this.onUpdateEvent); <--- Error here
updateTimer.Interval = 2000;
updateTimer.Enabled = true;
}
private void OnUpdateEvent(object source, ElapsedEventArgs e)
{
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}
答案 0 :(得分:1)
除了错字:为什么不写
updateTimer.Elapsed += OnUpdateEvent;
答案 1 :(得分:1)
更改此内容:updateTimer.Elapsed += new ElapsedEventHandler(this.onUpdateEvent);
对此:updateTimer.Elapsed += new ElapsedEventHandler(OnUpdateEvent);
或简化语法(正如其他人所建议的那样):updateTimer.Elapsed += OnUpdateEvent;
答案 2 :(得分:0)
试试这个,如果这适合你!
public Form1()
{
InitializeComponent();
System.Windows.Forms.Timer timer = newSystem.Windows.Forms.Timer();
timer.Interval = 2000;
timer.Tick += new EventHandler(Timer_Tick);
timer.Start();
}
void Timer_Tick(object sender, EventArgs e)
{
//
}
答案 3 :(得分:0)
一个非常简单的解决方案是使OnUpdateEvent方法成为静态,如果您不需要任何实例成员。