BlockingCollection (with an underlying ConcurrentQueue backing class) using GetConsumingEnumerable(). But I have to pause execution based on some logic, leaving items on the queue, until some other business logic resumes execution. Anyone know the best practice for that? Do I have to bypass GetConsumingEnumerable() and instead write something like below, but adding pause logic?