重複の可能性:
一度にメソッドを実行するスレッドの数を制限する
1つのアプリでは、コードのセクションの実行を4スレッドに制限する必要があります。このセクションはスレッドの開始/終了ではなく、スレッド内のコードのセクションです。
1つでこれを行う方法は簡単です-EventWaitHandleを作成し、それに待機/シグナルを送信します。しかし、私が4を実行することを考えたすべての方法で、待機する必要があると判断する可能性が残ります。別のスレッドがセクションとシグナルを存在させ、それから私は永遠に待機します。
では、すべてのスレッドが1つのアプリにある場合に、これを行うための最も軽量な方法は何でしょうか。
背景:ライセンスモデルを変更して、最大N個(この例では4個)のスレッドがライブラリを連続して呼び出すことができるようにします。私たちはサーバーではなくライブラリであるため、スレッドの使用を制御しません(データベースのように)。Webアプリの場合、呼び出し元のアプリもスレッドの数を制御しないため、最初の4つがそのコードを終了するまでスレッド5の呼び出しを一時停止する必要があります。