多くのソケットとファイルを開くアプリケーションを書くのが好きです。それをウェブサーバーと考えてください(私の場合はそうではありませんが、ここで問題を単純化するためです)。
Unix で C で書く場合は、poll/select を使用すると非常に効率的になります。複数のスレッドがないため、非常に効率的でありながら、すべてを簡単に記述できます。
複数のスレッドを使用して CPU のすべてのコアを使用する場合 (プロセスを使用したくない場合)、Unix FIFO を使用してメッセージを転送し、各スレッドでポーリング/選択を使用します (ファイル/ソケット/fifos で問題なく動作します)。 /)。非常に効率的でありながら、物事は依然として非常に単純です。
しかし、C# を使用すると、さまざまな選択があり、ほとんどのクラスがそのプログラミング スタイルをまったくサポートしていないように見えます (一例として HttpWebListener)。バックグラウンドで制御できないことが起こっているため、面倒なことは好きではBeginInvoke
ありません (ThreadPooling、ブロッキング サーバーの正常なシャットダウンなど)。
C# で使用できる select/poll alike フレームワークがあるのだろうか?