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); }
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); } }