using System.Threading.Tasks;
using System.Collections.Concurrent;
public static void Main()
PopulateQueueParallel(new ConcurrentQueue<string>(), 5000);
static void PopulateQueueParallel(ConcurrentQueue<string> queue, int queueSize)
Parallel.For(0, queueSize, (i) => queue.Enqueue(string.Format("my message {0}", i)));
Parallel.For(0, queueSize,
bool success = queue.TryDequeue(out message);
throw new Exception("Error!");
Console.WriteLine(message);