割り当てられたプロジェクトについてアドバイスを求めており、それが「専門的に」どのように行われたか、または正しい方向に導くことができる提案を探しています.
クライアントからのコマンドを受け取り、バイト ストリームをシリアル ポートにプッシュするサーバー ピースがあります。複数のクライアントがこのサーバー ピースにコマンドを送信できますが、ハードウェアは一度に 1 つのコマンドしか処理できません。私の問題は、ソフトウェア側でのキューイングにあります。
Queue<T>
要求しているクライアント番号、メッセージ データ (シリアル ポートに書き込むバイト配列)、およびメッセージ タイプ (コマンドの説明) を含む DataSet にデータを挿入するヘルパー クラスも実装しました。また、DataGrid (フォーム上) にキュー コマンドを一覧表示します。おそらくその方法ではありませんが、要求しているクライアントとデータを保持し、視覚的にキューを表示する限り、それが私が考えることができる唯一のことです。
キューの処理はどこで行うのですか? DataGrid リストが変更された (アイテムが追加/削除された) 場合に、DataSet の最初の行のデータを取得してシリアル ポートに送信するカスタム イベントで処理することを考えました。
コメントや提案は大歓迎です。
ありがとう。
編集:現在実行されているコマンドをキューから削除するには、SerialPort からの応答も必要であることを追加するのを忘れていました。