適切に理解できないコードが少しあります。問題は、プログラムがマルチスレッド化されており、同期する必要があるコードが少しあるため、次のように記述したことです。
lock (lockObject)
{
if (!Monitor.TryEnter(lockObject))
Monitor.Wait(lockObject);
//do stuff...
Monitor.PulseAll(lockObject);
}
Monitor.Exit(lockObject);
私が抱えている問題は、ある時点ですべてのスレッドがスリープしているように見えることです-誰かが理由を教えてもらえますか? プログラムはほとんど CPU を消費せずに無限に実行され続けますが、作業は行われません。私はエラーがほとんど(開発者の場合-常に)モニターの前0.5mにあることを知っています-しかし、私はそれを自分で理解することはできません...おそらく数分で;)
誰かが私にそれを説明してもらえますか - 前もって感謝します。