Update: See the notes for an important point about the 50,000 bytes / 100,000 messages case. Code for this post is available here . See below for the link to the download containing the CCR DLL. So here’s the problem: you need an in-memory queue in your application that can handle processing a large number (several thousands) of messages per second, using several enqueuing and dequeuing threads. If you’re using .NET Framework 4.0 then you would immediately go for the new ConcurrentQueue class available...