ConcurrentDictionaryに値が追加されるまで待機する必要があるタスクがあります。値が追加された場合、待機を停止して作業を続行する必要があります。タイムアウトが発生した場合(たとえば5秒)も待機を停止する必要があります。
値は別のスレッド/タスクによってConcurrentDictionaryに追加する必要がありますが、コードの性質上、スレッドが相互に通信することは望ましくありません。
これを(C#で)実装するにはどうすればよいですか?
ところで、私はほとんどの部分でスレッドではなくタスクを使用しているので、現在のスレッドでThread.Sleepまたは他のメソッドが適切な決定であるかどうかはわかりません。これは、同じスレッドを使用する他のタスクをスリープさせ、原因となる可能性があるためです。ランダムな問題。