ロック文の中にどれくらいの作業を配置する必要がありますか?
私は、サードパーティソリューションからデータを受信し、データベースに保存し、別のサードパーティソリューションで使用するためにデータを調整するソフトウェアの更新プログラムの作成に取り組んでいるジュニア開発者です。当社のソフトウェアはWindowsサービスとして実行されます。 以前のバージョンのコードを見ると、次のように表示されます。 static Object _workerLocker = new object(); static int _runningWorkers = 0; int MaxSimultaneousThreads = 5; foreach(int SomeObject in ListOfObjects) { lock (_workerLocker) { while (_runningWorkers >= MaxSimultaneousThreads) { Monitor.Wait(_workerLocker); } } // check to see if the service has been stopped. If yes, then exit if (this.IsRunning() == …