C# 将完成添加以唤醒已被take阻塞的线程
如果消费者已经被take()阻止,生产者的completeAdding会唤醒它吗?使用BlockingCollection。MSDN没有清楚地说明这一点。我不太熟悉BlockingCollections,但一般来说,我的理解是,如果某个内容被阻止,它不会被第三方“唤醒”。否 快速实验表明,它将在Take()方法中引发InvalidOperation异常 这是有道理的:C# 将完成添加以唤醒已被take阻塞的线程,c#,.net,C#,.net,如果消费者已经被take()阻止,生产者的completeAdding会唤醒它吗?使用BlockingCollection。MSDN没有清楚地说明这一点。我不太熟悉BlockingCollections,但一般来说,我的理解是,如果某个内容被阻止,它不会被第三方“唤醒”。否 快速实验表明,它将在Take()方法中引发InvalidOperation异常 这是有道理的: int value = data.Take(); 当线程/任务在没有任何数据返回的情况下“唤醒”时,value是什么 如果您被
int value = data.Take();
当线程/任务在没有任何数据返回的情况下“唤醒”时,value
是什么
如果您被TryTake(out x)
阻止,添加完成后,它将返回false