在消費者已被take()阻止的情況下,生產者的completeAdding會將其喚醒嗎?使用BlockingCollection。 MSDN沒有說清楚。將完成添加以喚醒已被阻止的線程,取消
2
A
回答
2
號快速實驗表明它會在採取()方法拋出InvalidOperation異常。
這是有道理的:
int value = data.Take();
什麼會value
是當線程/任務也只是「喚醒」沒有任何數據返回?
如果您被TryTake(out x)
阻止,則在添加完成時它將返回false
。
0
我對BlockingCollections並不是很熟悉,但總的來說,我的理解是,如果有東西被阻塞,它不會被第三方「喚醒」。
相關問題
- 1. Java喚醒阻塞線程定期
- 2. 喚醒線程而不冒被阻塞的風險
- 3. 我可以喚醒由於對DatagramSocket.receive()的調用而被阻塞的線程嗎?
- 4. 塊和喚醒消費者線程/
- 5. 我可以「強制」線程喚醒嗎?
- 6. 已經被阻止添加到網站
- 7. 喚醒睡眠線程
- 8. 信號喚醒線程
- 9. Java併發喚醒線程
- 10. Scala:喚醒睡眠線程
- 11. 如何喚醒被暫停()阻塞的進程?
- 12. 阻塞的線程能夠喚醒自己嗎?
- 13. 在Linux中喚醒阻止串口讀取
- 14. Android:UI線程被阻止
- 15. 如何識別線程是否已被中止或完成
- 16. UIView animateWithDuration完成已完成=是,儘管被取消?
- 17. 安全地喚醒Ruby中的線程
- 18. 等待線程完成而不阻止UI線程
- 19. 從另一個線程喚醒
- 20. 如何喚醒「等待」線程?
- 21. java線程等待並自動喚醒
- 22. notify_all沒有喚醒等待線程
- 23. 在指定時間喚醒線程
- 24. 當事件發生時喚醒線程
- 25. 每n秒喚醒一次線程
- 26. 在java中喚醒等待線程
- 27. 如何喚醒睡眠(3)ing線程
- 28. 在特定時間後喚醒線程
- 29. 如何在Perl中喚醒線程
- 30. 喚醒線程和退出睡眠