public void TestMemQueueOneThreadException() { var bill = new Bill { Count = 0 }; var memq = new MemQueue <Order>("Test3", x => { if (x.Id % 2 == 0) { throw new InvalidOperationException(); } else { bill.Count++; } }); memq.Start(); for (var i = 0; i < 100; i++) { memq.Enqueue(new Order { Id = i }); } while (!memq.IsEmpty) { } Thread.Sleep(10); Assert.Equal(50, bill.Count); memq.Close(); }
public void TestMemQueueOneThread() { var handler = new DefaultHandler <Order>(); var memq = new MemQueue <Order>("Test1", handler); Assert.Equal("Test1", memq.QueueName); Assert.True(memq.IsEmpty); memq.Start(); var tasks = new Task[100]; for (var i = 0; i < tasks.Length; i++) { var order = new Order { Id = i }; tasks[i] = new Task(() => memq.Enqueue(order)); } foreach (var t in tasks) { t.Start(); } Task.WaitAll(tasks); while (!memq.IsEmpty) { Thread.Sleep(10); } Thread.Sleep(20); Assert.Equal(100, handler.RequestCount); memq.Close(); memq.Enqueue(new Order { Id = 101 }); memq.Enqueue(new Order { Id = 102 }); memq.Enqueue(new Order { Id = 103 }); Assert.Equal(100, handler.RequestCount); Assert.True(memq.IsEmpty); }
public void Shutdown() { innerq.Close(); //server.Close(); //publisher.Close(); }