独自の小さなネットワーク ライブラリを作成してネットワークを学習しようとしています。現在、このようなコードで使用できる新しいクライアントのリストがあります。NewClientConnected() メソッドは、リストに何かがある場合に true を返し、最初の要素を削除します。
ConnectedClient newClient; // ConnectedClient is my class storing it's socket and stream and all that.
if(NewClientConnected(out newClient)
{
...handling new client, notification, etc...
}
新しいパケット (ストリームのプレフィックス スライス) をチェックする場合も同様です。私はそれを次のレベルに引き上げようとし、このようなことが起こったときにイベントを発生させようとし、新しいつながりから始めました. 問題は、イベントが別のスレッドから発生し、イベントが form1.cs で処理されるときに例外が発生することです。
イベントが静的な非コントロール クラスのメイン スレッドによって処理されるようにするにはどうすればよいですか? 私は自分がしていることをやり続けるべきですか?(上記のスニペット) 消費者と生産者の関係のアイデアを聞いたことがありますが、正しく思い出すと、タイマー (独自のスレッドを使用) または別のスレッドが必要になります。
私はそれをググってここを見ようとしましたが、誰もが異なる問題を抱えているようです. 別のプロジェクト(私のサーバーとクライアントのテスト)がそれを参照している間、それはライブラリプロジェクトにあります。
前もって感謝します。