コード例 #1
0
        static void Main(string[] args)
        {
            var staffLogs = new StaffLogForBonuses();
            var toDoQueue = new ToDoQueue(staffLogs);

            SalesPerson[] people =
            {
                new SalesPerson("Sahil"),
                new SalesPerson("Peter"),
                new SalesPerson("Juliette"),
                new SalesPerson("Xavier")
            };

            var controller = new StockController(toDoQueue);
            var workDay = new TimeSpan(0, 0, 5);

            var t1 = Task.Run(() => people[0].Work(controller, workDay));
            var t2 = Task.Run(() => people[1].Work(controller, workDay));
            var t3 = Task.Run(() => people[2].Work(controller, workDay));
            var t4 = Task.Run(() => people[3].Work(controller, workDay));

            var bonusLogger = Task.Run(() => toDoQueue.MonitorAndLogTrades());
            var bonusLogger2 = Task.Run(() => toDoQueue.MonitorAndLogTrades());

            Task.WaitAll(t1, t2, t3, t4);
            toDoQueue.CompleteAdding();
            Task.WaitAll(bonusLogger, bonusLogger2);

            controller.DisplayStatus();
            staffLogs.DisplayReport(people);
        }
コード例 #2
0
 public void Work(StockController stockController, TimeSpan workDay)
 {
     var rand = new Random(Name.GetHashCode());
     var start = DateTime.Now;
     while (DateTime.Now - start < workDay)
     {
         //Thread.Sleep(rand.Next(100));
         var buy = (rand.Next(6) == 0);
         var itemName = Program.AllShirtNames[rand.Next((Program.AllShirtNames.Count))];
         if (buy)
         {
             var quantity = rand.Next(9) + 1;
             stockController.BuyStock(this, itemName, quantity);
             DisplayPurchase(itemName, quantity);
         }
         else
         {
             var success = stockController.TrySellItem(this, itemName);
             DisplaySaleAttempt(success, itemName);
         }
     }
     Console.WriteLine("SalesPerson {0} signing off", Name);
 }
コード例 #3
0
        public void Work(StockController stockController, TimeSpan workDay)
        {
            var rand  = new Random(Name.GetHashCode());
            var start = DateTime.Now;

            while (DateTime.Now - start < workDay)
            {
                //Thread.Sleep(rand.Next(100));
                var buy      = (rand.Next(6) == 0);
                var itemName = Program.AllShirtNames[rand.Next((Program.AllShirtNames.Count))];
                if (buy)
                {
                    var quantity = rand.Next(9) + 1;
                    stockController.BuyStock(this, itemName, quantity);
                    DisplayPurchase(itemName, quantity);
                }
                else
                {
                    var success = stockController.TrySellItem(this, itemName);
                    DisplaySaleAttempt(success, itemName);
                }
            }
            Console.WriteLine("SalesPerson {0} signing off", Name);
        }