CrossThread异常:如何在C#中修改另一个线程?

时间:2014-05-20 08:15:18

标签: c# multithreading

我有一个多线程表单加载器,我试图修改另一个线程:

    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;中设置以启动Marquee的动画?

步骤:

  1. 在新线程上启动方法
  2. MarqueeAnimationSpeed从新线程更新为线程(1)
  3. Visual Studio警告我,我无法从新线程修改现有线程。

1 个答案:

答案 0 :(得分:1)

你可以将它定义为一个新方法或类,调用它,在你开始新线程之前,你可以简单地设置MarqueeAnimationSpeed = 1;最后,捕获线程退出并重新设置MarqueeAnimationSpeed = 0;