C# 跨线程操作:调用多个文本框

C# 跨线程操作:调用多个文本框,c#,multithreading,exception,textbox,C#,Multithreading,Exception,Textbox,我不确定我的标题是否正确,因为我不知道我在做什么 我正在VisualStudio中创建一个表单,它通过串口与arduino进行通信 在表单中,我有大约9个文本框需要更新/添加文本 当我这样做时,我得到了交叉线程操作无效的异常。在查看stackoverflow之后,我发现了一个解决方案,它是这样的:[跨线程操作无效:控件“textBox1”是从创建它的线程以外的线程访问的][1] [1] : 这个解决方案对我来说很好,但有点尴尬。因为我有9个文本框,所以我必须创建9个SetText方法,这非常笨

我不确定我的标题是否正确,因为我不知道我在做什么

我正在VisualStudio中创建一个表单,它通过串口与arduino进行通信

在表单中,我有大约9个文本框需要更新/添加文本

当我这样做时,我得到了交叉线程操作无效的异常。在查看stackoverflow之后,我发现了一个解决方案,它是这样的:[跨线程操作无效:控件“textBox1”是从创建它的线程以外的线程访问的][1]

[1] :

这个解决方案对我来说很好,但有点尴尬。因为我有9个文本框,所以我必须创建9个SetText方法,这非常笨拙。 我想知道是否有一个更通用的解决方案,我可以用在我的每个文本框


如果我理解你,也许你可以考虑一个更简单的方法。快速解决方案可以是使用共享事件。
也许您可以从类中引发自定义事件,然后,您只需从表单中听到它,就可以接收文本或更复杂的参数,例如结构或具有更多信息的类要更新的控件名称+文本,或者您需要的任何内容。

为什么需要9个SetText方法?为什么该方法不能将控制作为参数?建议的方法中有许多通用的解决方案。