Gui在使用线程时会冻结

rik*_*rik 5 c# user-interface multithreading freeze

我被困住了,希望有人可以帮助我.

我已经制作了一个类/ gui,其中一个加载条设置为选取框,这样当执行任务时我可以将其显示给用户.

在我的一个gui类中,在第一行的构造函数中,我正在创建此类的新实例然后执行

    LoadingBar bar = new LoadingBar();
    Thread thread = new Thread(bar.Show);
    thread.Start();
Run Code Online (Sandbox Code Playgroud)

然而,即使主程序线程正在做一些更密集的东西,这个gui似乎仍然冻结,即使我使用backround worker.

我提到的方法有什么问题,如果有,我需要改变什么?

谢谢

Vin*_*rgh 6

你需要改变你的方法.当工作在"工作线程"(通常是BackGroundWorker)中完成时,GUI需要保留在主线程中.然后工作人员向GUI报告然后更新.