So I rewrote GonzoNet and my servers to use BlockingCollection instead of ArrayList and ConcurrentDictionary instead of Dictionary.
However, I'm pretty sure I read on MSDN somewhere (I can't find the article right now) that I should be using BlockingCollection.GetConsumingEnumerable() when doing a foreach loop, because the standard foreach iterator will block threads.
So... how would I then readd items into the collection after I'm done consuming them?
Could I add them to a temp collection and replace the original one with the temp? Would that be safe?