0

我有多个 IP 设备连接到我的计算机。每个设备都使用单独的线程连接。使用类实例为每个线程分配一个函数,并使用套接字编程进行通信。所有设备都独立地向 PC 软件发送数据。现在我必须将此数据发送到我的主窗体(其他类)以显示。怎么做 ??

提前致谢 !!

4

3 回答 3

0

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.

http://msdn.microsoft.com/en-us/magazine/cc163744.aspx

于 2013-04-09T13:06:53.093 回答
0

我建议您将回调函数(从您的主表单)传递给每个实例。然后,您可以为每个线程分配一些 ID,并在调用此回调时将此线程 ID 与数据一起传递,以便您可以区分它们。

于 2013-04-09T13:04:02.063 回答
0

可以这样做:

线程类: 1. 声明一个委托 --- public delegate void UPDATEVALUE(o_sender, string value); 2.声明一个委托类型的事件-----公共事件UPDATEVALUE更新;3. 在我收到数据的任何地方引发此事件 ------ update(this, value);

主类:

  1. 为我正在创建的每个线程添加事件——Threadclass tc = new Threadclass(); tc.update += 新 Threadclass.UPDATEVALUE(DisplayValue)

其中 DisplayValue 是 MainClass 中用于显示更新值的函数。

于 2013-04-10T09:43:28.453 回答