我有多个 IP 设备连接到我的计算机。每个设备都使用单独的线程连接。使用类实例为每个线程分配一个函数,并使用套接字编程进行通信。所有设备都独立地向 PC 软件发送数据。现在我必须将此数据发送到我的主窗体(其他类)以显示。怎么做 ??
提前致谢 !!
我有多个 IP 设备连接到我的计算机。每个设备都使用单独的线程连接。使用类实例为每个线程分配一个函数,并使用套接字编程进行通信。所有设备都独立地向 PC 软件发送数据。现在我必须将此数据发送到我的主窗体(其他类)以显示。怎么做 ??
提前致谢 !!
One approach is to have an object that all threads (including the main) know and in which you can put the received data. The main thread/form just needs to read it from time to time. You need to take care of lock/unlock this object before you write/read it.
我建议您将回调函数(从您的主表单)传递给每个实例。然后,您可以为每个线程分配一些 ID,并在调用此回调时将此线程 ID 与数据一起传递,以便您可以区分它们。
可以这样做:
线程类: 1. 声明一个委托 --- public delegate void UPDATEVALUE(o_sender, string value); 2.声明一个委托类型的事件-----公共事件UPDATEVALUE更新;3. 在我收到数据的任何地方引发此事件 ------ update(this, value);
主类:
其中 DisplayValue 是 MainClass 中用于显示更新值的函数。