C# winform程序,UI界面锁死。如何处理?

2025-04-28 17:45:01
推荐回答(4个)
回答1:

Winform 程序,要想保证 UI 不卡死,只有将长耗时任务放到非UI线程运行这一个办法。而且现在早已进入多核时代,软件上多线程设计的思想要是要有的,不然的话,CPU的性能是不能充分利用的。

楼主说的方法1与2,如其他回答所说一样,治标不治本。关于多线程编程,楼主可以参考下 Task 。这个类库在线程上又多封装了一层,让开发者可以不直接接触线程来实现并行运算。用 Task 来处理楼主的问题用不了几行代码的。

回答2:

1和2按你的情况都是没用的,如果你所说的那个执行是个循环的话,可以在循环中加一行Application.DoEvents() 这个可以让UI不卡死,但加入这个会极大的降低你的循环执行效率。所以一般情况下还是要用多线程的。

回答3:

不要用定时器 开个线程 后天处理数据 然后UI填充 等动作。

你以上设置 定时器 1秒执行一次 无限在触发。。

回答4:

一般情况都是放在子线程中运行。这样既保证效率,方便管理