【发布时间】:2018-03-08 09:18:02
【问题描述】:
我想构建加载表单,我将徽标设置为表单和进度条(对于进度条,我构建用户控件)。
这是我的代码:
private void frmLoading_Load(object sender, EventArgs e)
{
this.TransparencyKey = Color.Turquoise;
this.BackColor = Color.Turquoise;
pLogo.Image = Image.FromFile("Logo.png");
Task.Factory.StartNew(() => Progress());
}
private void Progress() {
int sleepTime = 200;
ucProgressBar.Minimum = 0;
ucProgressBar.Maximum = 100;
int value = 0;
for (value = 0; value < 10; value++)
{
ucProgressBar.Value = value;
Thread.Sleep(sleepTime);
}
ucProgressBar.Status = "Setting";
for (value = 10; value < 20; value++)
{
ucProgressBar.Value = value;
Thread.Sleep(sleepTime);
}
ucProgressBar.Status = "Printer";
}
当它在第一个循环中执行时,它会提示错误:
“跨线程操作无效:控件 'ucProgressBar' 从创建它的线程以外的线程访问。”
感谢您的帮助!
【问题讨论】:
-
也许,但我不认为它解决了我的问题。
-
我必须使用该解决方案但仍然无法正常工作(我的意思是这不是错误,但在一切完成之前界面不会显示!
标签: c# multithreading forms