可能重复:
How to update GUI from another thread in C#?
My Timer event crashes because the events are called on a different threadWindows窗体从其他线程更新控制
我有我想定期更新UI控件这是一个标签,一个计时器对象。但它崩溃,并说我需要在UI线程上更新它。谁能帮忙?
private void frmMain_Load(object sender, EventArgs e)
{
aTimer = new System.Timers.Timer(1000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 2000;
aTimer.Enabled = true;
}
public void updateUI()
{
lblAirTrack.Text = "Tracking: " + itemList.Count + " items";
}
不错,如果updateUI有一些参数传递怎么办。我试过这样做,但总是得到IDE错误 –
例如,如果它带了一个字符串,请将字符串参数添加到updateUIDelegate和updateUI。然后,当你调用:lblAirTrack.Invoke(new updateUIDelegate(updateUI),newParameterGoesHere); – jglouie