Jon Jon - 2 months ago 87
C# Question

How to empty a BlockingCollection

I have a thread adding items to a

BlockingCollection
.

On another thread I am using
foreach (var item in myCollection.GetConsumingEnumerable())


If there is a problem I want to break out of my foreach and my method and clear whatever is left in the
BlockingCollection
however I can't find a way to do it.

Any ideas?

Answer

Possibly use the overload of GetConsumingEnumerable which takes a CancellationToken, and then if anything goes wrong from the producing side, it can cancel the consumer.

Comments