private void Experiment(OrderQueueType type, EventWaitHandle waitHandler)
        {
            Stopwatch sw = Stopwatch.StartNew();
            QueueProvider.SetQueueType(type);

            TradeConsole tc = new TradeConsole();
            tc.Execute();

            Broker broker = new Broker();
            broker.Complete = () =>
            {
                sw.Stop();
                Console.WriteLine(string.Format("{1, 35}\t\t\t\t{0}", sw.ElapsedMilliseconds, type.ToString()));

                waitHandler.Set();
            };
            broker.Sell();
        }
 public static IOrderQueue Create(OrderQueueType type)
 {
     switch (type) {
         case OrderQueueType.ConcurrentQueue:
             return new ConcurrentOrderQueue();
         case OrderQueueType.BlockingCollection:
             return new OrderBlockingQueue();
         case OrderQueueType.ConcurrentStack:
             return new OrderStack();
         case OrderQueueType.ConcurrentBag:
             return new ConcurrentOrderBag();
         case OrderQueueType.MonitorBlockingQueue:
             return new MonitorBlockingQueue();
         case OrderQueueType.ReaderWriterLockBlockingQueue:
             return new ReaderWriterLockBlockingQueue();
         case OrderQueueType.ReaderWriterLockSlimBlockingQueue:
             return new ReaderWriterLockSlimBlockingQueue();
         default:
             return null;
     }
 }
Exemplo n.º 3
0
 public static void SetQueueType(OrderQueueType type)
 {
     _orderQueue = OrderQueueFactory.Create(type);
 }