/// <summary>
 /// Inicjacja nowego badania w eksperymencie symulacyjnym.
 /// Wykonujemy tylko przed pierwszą seria.
 /// </summary>
 /// <param name="aOf">Wartość ruchu oferowanego pojedynczej PJP</param>
 /// <param name="nrBadania">Numer badania</param>
 protected override void InicjacjaNowegoBadaniaSymulacji(double aOf, int nrBadania)
 {
     lZdarzen[nrBadania] = new agendaTyp5(this);
     sWiazka[nrBadania]  = new SimGroup(aWiazka);
     foreach (trClass kOfer in aWiazka.ListaKlasRuchu)
     {
         kOfer.ObliczParametry(aOf, aWiazka.sumaPropAT, aWiazka.V);
         kOfer.InicjacjaKolejnegoBadaniaSymulacji(sWiazka[nrBadania], lZdarzen[nrBadania], this, nrBadania);
         kOfer.sigmyStanow = new SigmaStruktury(aWiazka.V + 1);
         kOfer.sigmyStanow.wyczysc();
     }
     lZdarzen[nrBadania].czasOczekiwania = aWiazka.CzStartu;
 }
        protected override void SymulujWiazke(int nrBadania, int nrSerii)
        {
            agendaTyp5 agendaSym = lZdarzen[nrBadania] as agendaTyp5;
            SimGroup   wiazka    = sWiazka[nrBadania];

            agendaSym.zajeta.WaitOne();
            NowaSeria(nrBadania, false);
            while (symulowac(wiazka))
            {
                processSym pierwszy = agendaSym.PobierzPierwszy();
                if (pierwszy.czas < 0)
                {
                    if (pierwszy.czas > -0.00001)
                    {
                        pierwszy.czas = 0;
                    }
                    else
                    {
                        throw new Exception(string.Format("Ujemny czas {0}", pierwszy.czas));
                    }
                }
                agendaSym.CofnijCzasy((float)(pierwszy.czas));
                if (agendaSym.zapStatystyk)
                {
                    wiazka.Podlicz(pierwszy.czas);
                }
                else
                {
                    agendaSym.czasOczekiwania -= pierwszy.czas;
                }
                pierwszy.Obsluz();
            }

            KoniecSerii(nrBadania, nrSerii);
            lZdarzen[nrBadania].zajeta.ReleaseMutex();
            ZapiszWynikiSerii(nrBadania, nrSerii);
            aWiazka.DodPost();
        }