private void button1_Click(object sender, EventArgs e)
{
PROGRESS_BAR.Minimum = 0;
PROGRESS_BAR.Maximum = 100;
PROGRESS_BAR.Value = 0;
for (int i = 0; i < 100; i++)
{
Thread t = new Thread(new ThreadStart(updateProgressBar));
t.IsBackground = true;
t.Start();
}
}
private void updateProgressBar()
{
PROGRESS_BAR.PerformStep();
Thread.Sleep(4000);
}
我总是得到这个错误: 跨线程操作无效:从创建它的线程以外的线程访问控件“”。
我试图在谷歌中搜索解决方案,不幸的是,所有这些都不适合我。有谁知道如何解决这个问题? 提前致谢..
最佳答案
您不能与来自非 UI 线程的 UI 元素交互。 您需要使用如下代码
this.BeginInvoke((Action)(() => PROGRESS_BAR.PerformStep()));
关于c# - 无法在 C# 中使用线程更新进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4180330/