コード例 #1
0
        private Fan GenerateFan(ushort countSectors, ushort countPlases)
        {
            Fan fan = null;

            if (Convert.ToBoolean(random.Next(3)))
            {
                ushort sectorNumber = GetFreeSector(countSectors, countPlases);
                fan = new Fan()
                {
                    Name = "Fan", HasTicket = true, PlaceNumber = _sectorPlases[sectorNumber]++, SectorNumber = sectorNumber
                };
            }
            else
            {
                fan = new Fan()
                {
                    Name = "FakeFan", HasTicket = false, PlaceNumber = 123, SectorNumber = 123
                };
            }

            return(fan);
        }
コード例 #2
0
        private void FanGenerator()
        {
            try
            {
                bool isStadiumFull = false;
                while (!isStadiumFull)
                {
                    ushort countPlaces  = 0;
                    ushort countSectors = 0;

                    this.Dispatcher.Invoke(() =>
                    {
                        countSectors = CurrStadium.CountSectors;
                        countPlaces  = (ushort)(CurrStadium.CountPlaces / CurrStadium.CountSectors);
                        CurrStadium.IsStadiumFull();
                        isStadiumFull = CurrStadium.IsStadiumFull();
                    });
                    Fan fan = GenerateFan(countSectors, countPlaces);

                    int generateFunSleep = 0;
                    this.Dispatcher.Invoke(() =>
                    {
                        CurrStadium.EntranceStadiumQueue.Add(fan);
                        generateFunSleep = GenerateFunSleep;
                    });
                    Thread.Sleep(generateFunSleep);
                }
            }
            catch (ThreadAbortException ex)
            {
                MessageBox.Show(ex.Message + " FanGenerator.");
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }