交叉线程异常:如何在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;来启动选框的动画?

步骤:

  1. 在新线程上启动一个方法
  2. MarqueeAnimationSpeed从新线程更新为线程(1)

Visual Studio警告我不能用新线程修改现有线程

交叉线程异常:如何在c#中从一个线程修改另一个线程

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