0

複数の IP デバイスがコンピュータに接続されています。各デバイスは、個別のスレッドを使用して接続されます。各スレッドには、クラス インスタンスを使用して関数が割り当てられ、ソケット プログラミングを使用して通信します。すべてのデバイスが独立して PC ソフトウェアにデータを送信しています。ここで、このデータをメイン フォーム (他のクラス) に送信して表示する必要があります。それを行う方法??

前もって感謝します !!

4

3 に答える 3

0

各インスタンスに (メイン フォームから) コールバック関数を渡すことをお勧めします。次に、各スレッドに ID を割り当て、このコールバックを呼び出すときに、このスレッド ID をデータと一緒に渡すことで、それらを区別することができます。

于 2013-04-09T13:04:02.063 に答える
0

次の方法で実行できます。

スレッド クラス: 1. デリゲートを宣言します --- public delegate void UPDATEVALUE(o_sender, string value); 2. デリゲート タイプのイベントを宣言します ----- public event UPDATEVALUE update; 3. データを受信するたびにこのイベントを発生させます ------ update(this, value);

メインクラス:

  1. 私が作成している各スレッドのイベントを追加します -- Threadclass tc = new Threadclass(); tc.update += 新しい Threadclass.UPDATEVALUE(DisplayValue)

ここで、DisplayValue は更新された値を表示する MainClass の関数です。

于 2013-04-10T09:43:28.453 に答える
0

1 つの方法は、すべてのスレッド (メインを含む) が認識し、受信したデータを格納できるオブジェクトを用意することです。メインスレッド/フォームは時々それを読む必要があります。書き込み/読み取りを行う前に、このオブジェクトをロック/ロック解除する必要があります。

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

于 2013-04-09T13:06:53.093 に答える