複数の IP デバイスがコンピュータに接続されています。各デバイスは、個別のスレッドを使用して接続されます。各スレッドには、クラス インスタンスを使用して関数が割り当てられ、ソケット プログラミングを使用して通信します。すべてのデバイスが独立して PC ソフトウェアにデータを送信しています。ここで、このデータをメイン フォーム (他のクラス) に送信して表示する必要があります。それを行う方法??
前もって感謝します !!
複数の IP デバイスがコンピュータに接続されています。各デバイスは、個別のスレッドを使用して接続されます。各スレッドには、クラス インスタンスを使用して関数が割り当てられ、ソケット プログラミングを使用して通信します。すべてのデバイスが独立して PC ソフトウェアにデータを送信しています。ここで、このデータをメイン フォーム (他のクラス) に送信して表示する必要があります。それを行う方法??
前もって感謝します !!
各インスタンスに (メイン フォームから) コールバック関数を渡すことをお勧めします。次に、各スレッドに ID を割り当て、このコールバックを呼び出すときに、このスレッド ID をデータと一緒に渡すことで、それらを区別することができます。
次の方法で実行できます。
スレッド クラス: 1. デリゲートを宣言します --- public delegate void UPDATEVALUE(o_sender, string value); 2. デリゲート タイプのイベントを宣言します ----- public event UPDATEVALUE update; 3. データを受信するたびにこのイベントを発生させます ------ update(this, value);
メインクラス:
ここで、DisplayValue は更新された値を表示する MainClass の関数です。
1 つの方法は、すべてのスレッド (メインを含む) が認識し、受信したデータを格納できるオブジェクトを用意することです。メインスレッド/フォームは時々それを読む必要があります。書き込み/読み取りを行う前に、このオブジェクトをロック/ロック解除する必要があります。