私はwinformsアプリケーションに取り組んでいます。シリアルポートのリストがあり、それぞれが異なるCOMポートでリッスンしています。
すべてのSerialPortに一意のイベントハンドラSerialPort.DataReceivedを追加することを計画しています。これは良いデザインですか?ありがとうございました。
まあ、確かに、それは何も悪いことではありません。また、DataReceivedイベントハンドラーは、データを処理する他のコードに渡す前に「パケット」全体を受信しようとする必要があるため、非常に便利です。特に、BeginInvokeを使用してUIスレッドでコードを実行する場合。通常、デバイスが異なればプロトコルも異なるため、それぞれのイベントハンドラーに異なるコードが必要になります。または、部分的な応答を格納するための別のバッファ。
またはそうでなくても、すべてのデバイスが同じように動作し、同じイベントハンドラーコードを共有することは機能します。適切なRead呼び出しを行うには、 sender引数をSerialPortにキャストする必要があります。あなたの質問に行くための適切な方法を推測することはほとんどありません。