何时在GUI对象上调用?

使用C #Windows.Forms,必须在主/ GUI线程(需要Invoke / BeginInvoke)上运行Invalidate(),Refresh()等方法吗? 如何更改GUI对象的成员,例如添加/删除Points或更改Charting.Chart对象中的系列颜色?

我在工作线程中发生了一些这些更改,没有任何问题(所以我猜他们没问题?),但我试图区分哪些更改在GUI线程上需要明确,哪些更改可以在对象中发生工人线程。 有没有人有关于这个主题的指导的链接或书籍参考?

通常,您通常应该假设应该在UI线程上对GUI元素进行所有更改。

通常,后台线程的更改在测试期间会起作用,但会在部署后中断。 一般来说,除非另有说明,否则假设所有内容都应该在UI线程上更安全。

您不能进行操作工作线程上的WinForms控件的同步方法调用。

我不确定“添加/删除点”是指什么,或Charting.Chart类。 该类可以自己封装GUI Thread调用。

一般来说,如果要修改Control上的大小,文本,背景颜色或其他属性,则必须使用Invoke / BeginInvoke。

这应该告诉你Control.InvokeRequired