Esempio n. 1
0
 private static void LongRunningLowPriorityMessages()
 {
     int messagesToAdd = 10;
      foreach (var car in cars)
      {
     for (int i = 0; i < messagesToAdd; i++)
     {
        var message = new Message(() =>
        {
           Thread.Sleep(100);
           Console.WriteLine("Car Address: {0}, {1}",
                             car.Address,
                             "message processed");
        });
        queueManager.Enqueue(message, car);
     }
      }
 }
Esempio n. 2
0
 private static void HighPriorityMessages()
 {
     var timer = new System.Timers.Timer(1000);
      timer.Elapsed += (sender, args) =>
      {
     foreach (var car in cars)
     {
        var message = new Message(() =>
        {
           Console.WriteLine("Car Address: {0}, {1}",
                             car.Address,
                             "High priority message");
        });
        queueManager.Enqueue(message, cars[0], Priority.High);
     }
      };
      timer.Start();
 }
 public void Enqueue(Message message, Car car, Priority priority = Priority.Low)
 {
     MessageQueue queue;
      if (_queueLookup.TryGetValue(car, out queue))
      {
     queue.Add(message, priority);
      }
 }