Asynchronous Producer Consumer Pattern in .NET (C#)