交叉线程异常:如何在c#中从一个线程修改另一个线程
本文关键字:线程 一个 另一个 修改 异常 | 更新日期: 2023-09-27 18:04:15
我有一个多线程表单加载器,我正试图从另一个线程修改一个线程:
private void Form1_Load(object sender, EventArgs e)
{
button4.Enabled = false;
progressBar1.Style = ProgressBarStyle.Marquee;
progressBar1.MarqueeAnimationSpeed = 0;
progressBar1.Value = 1;
new Thread(new ThreadStart(CompareVersions)).Start();
}
我如何设置在一个新的线程中启动的CompareVersion
,他必须在前一个线程中设置progressBar1.MarqueeAnimationSpeed = 1;
来启动选框的动画?
步骤:
- 在新线程上启动一个方法
- 将
MarqueeAnimationSpeed
从新线程更新为线程(1)
Visual Studio警告我不能用新线程修改现有线程
你可以将它定义为一个新的方法或类,调用它,在你启动新线程之前,你可以简单地设置MarqueeAnimationSpeed = 1;最后,捕获线程退出并重新设置MarqueeAnimationSpeed = 0;