使用 C# Windows.Forms,方法 Invalidate()、Refresh() 等是否必须在主/GUI 线程上运行(需要 Invoke/BeginInvoke)?如何更改 GUI 对象的成员,例如在 Charting.Chart 对象中添加/删除点或更改系列的颜色?
我在工作线程中发生了其中一些更改,没有任何问题(所以我猜它们没问题?),但我试图区分哪些更改是 GUI 线程上明确需要的,哪些更改可以发生在工作线程中的对象。有没有人有关于此主题的指南的链接或书籍引用?
最佳答案
一般来说,您通常应该假设对 GUI 元素的所有更改都应该在 UI 线程上进行。
通常,后台线程上的更改会在测试期间起作用,但会在部署后中断。一般来说,除非另有说明,否则假设一切都应该在 UI 线程上会更安全。
关于c# - GUI 对象何时需要调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554981/