【发布时间】:2013-03-23 23:53:02
【问题描述】:
我的代码在行中显示线程无效的跨线程访问 label_mytimer.Text = mytimeLeft + "秒";在调试时运行,但在正常执行时,没有问题。如何避免多跨线程访问,我知道问题是许多线程试图同时访问我的文本框控件,不知道如何使用 backgroundworker 如果它工作。
private void ttOnTimedEvent(object source, ElapsedEventArgs e)
{
if (mytimeLeft > 0)
{
// Display the new time left
// by updating the Time Left label.
mytimeLeft = mytimeLeft - 1;
label_mytimer.Text = mytimeLeft + " Sec";//Show time left
}
else
{
label_mytimer.Text = "OK...";
mytimeLeft = int.Parse(tBox_rp_Time.Text);
mycountdownTimer.Stop();
mycountdownTimer.Enabled = false;
}
【问题讨论】:
-
您只能从 UI 线程访问 Winform 对象(这可能过于笼统)
标签: c# multithreading error-handling