static void ExecuteQueueTask() { using (ProducerConsumeQueue <string> queue = new ProducerConsumeQueue <string>(Log)) { queue.EnqueueTask("Start Log handler."); for (int i = 0; i < 10; i++) { queue.EnqueueTask("Handle log " + i); } queue.EnqueueTask("Complete"); } }
public Child(ProducerConsumeQueue<YourData> pdq) { Task.Factory.StartNew( () => { while (true) { YourData item = pdq.Consume(); try { ProcessItem(item); } catch { // Do something with exceptions here. } } ), TaskCreationOptions.LongRunning); }