尝试在Richtextbox中写文本时发生System.InvalidOperationException

时间:2019-12-22 17:04:39

标签: c# multithreading solver sudoku

我正在使用递归和回溯制作数独求解器,但是我有一个小问题... 当我运行应用程序时,表单开始滞后,因此我创建了一个线程和一个类来处理所有计算,因此表单不会滞后,并且可以正常工作!

但是,当richTextBox应该从计算类中的数组中打印数字时,它给我这个错误,并显示“ System.InvalidOperationException”。

我该怎么做才能解决此问题?

new Thread(() =>
        {
            if (calc.CalcMain() == true)
            {
                printBoard();
            }
            else
            {
                MessageBox.Show("No Sulution");
            }
        }).Start();


// Calculations class
public string[] board2 = { ".........",
                               ".........",
                               ".........",
                               ".........",
                               ".........",
                               ".........",
                               ".........",
                               ".........",
                               "........." };

// Calculations class
public bool CalcMain()
    {
        if (solve() == true)
        {
            return true;
        }
        else
        {
            return false;
        }
    }


// Main Class
richTextBox1.Text = Convert.ToString(calc.board2[0][0]);

所以我在做的是 1.创建一个计算线程。 2.公众数独局所有号码。 3. Solve()将进行计算并填写董事会。 4.将白板上的文本写到richtextbox。

0 个答案:

没有答案