我有一个任务应该等到一个值被添加到 ConcurrentDictionary。如果添加了值,它应该停止等待并继续其工作。如果发生超时(例如 5 秒),它也应该停止等待。
该值应该由另一个线程/任务添加到 ConcurrentDictionary,但是,由于代码的性质,我不希望线程相互通信。
我应该如何实现这个(在 C# 中)?
顺便说一句,我在大多数情况下使用的是任务,而不是线程,因此我不确定当前线程上的 Thread.Sleep 或其他方法是否是一个好的决定,因为它可能会休眠使用相同线程的其他任务并导致随机问题。