我只是对线程和 UI 控件感到好奇。
根据我的测试代码,当我运行编译的 .exe 文件时,线程访问进程栏没有任何问题。但是当我调试代码时,会出现 InvalidOperationException。(无论是池化线程还是普通线程。)
所以我知道线程不允许访问UI控件,但是为什么我运行.exe文件就可以了。是预定的设计吗?
PS.我知道我们可以使用 backgroundworker 让事情变得优雅。
private void button1_Click(object sender, EventArgs e)
{
Task.Factory.StartNew(dothing);//use the pooled thread
//Thread t = new Thread(new ThreadStart(this.ThreadProcSafe));
//t.Start();
}
private void dothing()
{
for (int i = 1; i <= 100; i++)
{
progressBar2.Value = i;
Thread.Sleep(100);
}
}