我正在制作一个 WinForms 程序,它需要单独的线程为了可读性和可维护性,我已将所有非 GUI 代码分成不同的类。该类还“生成”另一个类,该类进行一些处理。但是,我现在遇到了需要从在不同类中启动的线程更改 WinForms 控件(将字符串附加到文本框)的问题
我四处搜索,找到了不同线程和不同类的解决方案,但并非两者兼而有之,提供的解决方案似乎不兼容(对我而言)
然而,这可能是最大的“线索”:How to update UI from another thread running in another class
类层次结构示例:
class WinForm : Form
{
...
Server serv = new Server();
}
// Server is in a different thread to winform
class Server
{
...
ClientConnection = new ClientConnection();
}
// Another new thread is created to run this class
class ClientConnection
{
//Want to modify winform from here
}
我知道事件处理程序可能是要走的路,但我不知道在这种情况下如何做(我也愿意接受其他建议;))
任何帮助表示赞赏