public void Run(int messageCount, int runtime, int timeOut, int workerCount, int readerCount, int queueSize, bool useTransactions, bool enableChaos) { var factory = SimpleConsumerAsync.CreateFactory(workerCount, queueSize, out var schedulerContainer); using (schedulerContainer) { using (factory.Scheduler) { var task1 = Task.Factory.StartNew( () => RunConsumer(messageCount, runtime, timeOut, workerCount, readerCount, queueSize, useTransactions, 1, factory, enableChaos)); var task2 = Task.Factory.StartNew( () => RunConsumer(messageCount, runtime, timeOut, workerCount, readerCount, queueSize, useTransactions, 2, factory, enableChaos)); var task3 = Task.Factory.StartNew( () => RunConsumer(messageCount, runtime, timeOut, workerCount, readerCount, queueSize, useTransactions, 3, factory, enableChaos)); Task.WaitAll(task1, task2, task3); } } }
private void RunConsumer(int messageCount, int runtime, int timeOut, int workerCount, int readerCount, int queueSize, bool useTransactions, int messageType, ITaskFactory factory, bool enableChaos) { var queue = new SimpleConsumerAsync(); queue.RunWithFactory(messageCount, runtime, timeOut, workerCount, readerCount, queueSize, useTransactions, messageType, factory, enableChaos); }
private void RunConsumer(int messageCount, int runtime, int timeOut, int workerCount, int readerCount, int queueSize, bool useTransactions, int messageType, ITaskFactory factory) { var queue = new SimpleConsumerAsync(); queue.Run(messageCount, runtime, timeOut, workerCount, readerCount, queueSize, useTransactions, messageType, factory); }