gpt4 book ai didi

c# - 跨线程操作无效 : Control 'label1' accessed from a thread other than the thread it was created on

转载 作者:行者123 更新时间:2023-11-30 20:04:37 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why am I getting this error:“Cross-thread operation not valid: Control lbFolders accessed from a thread other than the thread it was created on.”?

我是 winforms 的新手。在我的代码中,我正在使用 for 循环更新进度条,现在我需要更新循环计数形式的标签,如下所示 -

public partial class Form1 : Form { public Form1() { InitializeComponent();

        Shown += new EventHandler(Form1_Shown);

// To report progress from the background worker we need to set this property
backgroundWorker1.WorkerReportsProgress = true;
// This event will be raised on the worker thread when the worker starts
backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
// This event will be raised when we call ReportProgress
backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
}

private void Form1_Load(object sender, EventArgs e)
{

}

void Form1_Shown(object sender, EventArgs e)
{
// Start the background worker
backgroundWorker1.RunWorkerAsync();
}


// On worker thread so do our thing!
void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
// Your background task goes here
for (int i = 0; i <= 100; i++)
{
label1.Text = "Trade" + i;
// Report progress to 'UI' thread
backgroundWorker1.ReportProgress(i);
// Simulate long task
System.Threading.Thread.Sleep(100);
}
}
// Back on the 'UI' thread so we can update the progress bar
void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// The progress percentage is a property of e
progressBar1.Value = e.ProgressPercentage;
}

}

但是在访问 label1 时,它抛出错误 -

Cross-thread operation not valid: Control 'label1' accessed from a thread other than the thread it was created on.

如何更新label1的文本

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com