据我所知,BlockingCollection使用非忙等待,这是对新项目/回调的通知.所以我不明白它是如何阻塞但我认为我可能混合被阻止的线程并阻止访问共享对象? 最佳答案 这是一个很好的解释:
https://blogs.msdn.microsoft.com/toub/2006/04/12/blocking-queues/
从本质上讲,当您尝试DeQueue时会发生阻塞. EnQueue是线程安全的,而DeQueue将阻塞(阻塞调用DeQueue的线程),直到有东西可以获得.
好消息是你不必关心(也不应该关心)阻塞是如何实现的.