无论如何运行大量 UI 更新而不影响 C# winforms 应用程序中的主线程?
当用户单击特定事件时,我想避免长时间延迟(在我的情况下,这是许多关闭表单调用来处理内存)
我知道我可以用来BackgroundWorker
在“做工作”事件中执行冗长的操作,但问题是你不能在这个事件中更改任何 UI(它会导致跨线程异常) - 所以我不能把我的大量关闭表单在这里打电话。
而且我不能将关闭表单调用放在“工人完成”事件中,因为这是在主线程上运行的,并且最终会锁定主线程,从而导致糟糕的用户体验。
我曾考虑过仅在应用程序会话空闲时才生成一个线程来处理关闭,但不确定这是否会有点混乱。