コード例 #1
0
        static void Main(string[] args)
        {
            // Will fail without locking!!!
            IToiletQueue queue = new NoLockingQueue();

            // IToiletQueue queue = new SimpleLockQueue();
            // IToiletQueue queue = new SemaphoreQueue();
            // IToiletQueue queue = new ConcurrentToiletQueue();

            int    randomSeed = new Random().Next();
            Random random     = new Random(randomSeed);

            PeopleGenerator[] producers = new PeopleGenerator[Parameters.Producers];
            for (int i = 0; i < producers.Length; i++)
            {
                producers[i] = new PeopleGenerator("People Generator " + i, queue, random);
            }

            Toilet[] consumers = new Toilet[Parameters.Consumers];
            for (int i = 0; i < consumers.Length; i++)
            {
                consumers[i] = new Toilet("Toilet " + i, queue);
            }

            Statistics.Reset();

            for (int i = 0; i < producers.Length; i++)
            {
                producers[i].Produce();
            }
            for (int i = 0; i < consumers.Length; i++)
            {
                consumers[i].Consume();
            }

            for (int i = 0; i < consumers.Length; i++)
            {
                consumers[i].Join();
            }

            Statistics.Display();

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();

            Console.ReadLine();
        }
コード例 #2
0
        /// <summary>
        /// Startup point of the program.
        /// </summary>
        public MainWindow()
        {
            WindowStartupLocation = WindowStartupLocation.CenterScreen;
            InitializeComponent();

            var result = MessageBox.Show("Do you want to use default data?",
                                         "File reading",
                                         MessageBoxButton.YesNo,
                                         MessageBoxImage.Question);

            if (result == MessageBoxResult.Yes)
            {
                _generator = new PeopleGenerator();
            }
            else
            {
                _generator = _defaultDialogService.OpenFileDialog() ? new PeopleGenerator(_defaultDialogService.FilePath) : new PeopleGenerator();
            }

            _floors = new List <Floor>();

            myCanvas.Focus();
            RunDataTableRefreshing();
        }