public override void DodajProces(processSym dodawany)
            {
                dodawany.idx = _count;
                incCount();
                _tab[_count - 1] = dodawany;


                przepychajWgore(_count - 1);
            }
            private void swap(int idx1, int idx2)
            {
                processSym tmp = _tab[idx1];

                _tab[idx1]     = _tab[idx2];
                _tab[idx2]     = tmp;
                _tab[idx1].idx = idx1;
                _tab[idx2].idx = idx2;
            }
        public override void DodajProces(processSym dodawany)
        {
            dodawany.czas = (float)dodawany.czas + przesuniecieCzasu;
            dodawany.idx  = _count;
            incCount();
            _tab[_count - 1] = dodawany;


            przepychajWgore(_count - 1);
        }
            public override void DodajProces(processSym dodawany)
            {
                dodawany.czas = (float)(dodawany.czas + this.czas);
                dodawany.idx  = _count;
                incCount();
                _tab[_count - 1] = dodawany;


                przepychajWgore(_count - 1);
            }
 private void incCount()
 {
     _count++;
     if (_count > _MaxSize)
     {
         processSym[] newTab = new processSym[2 * _MaxSize];
         Array.Copy(_tab, newTab, _MaxSize);
         _tab      = newTab;
         _MaxSize *= 2;
     }
 }
            public override processSym PobierzPierwszy()
            {
                processSym wynik = _tab[0];

                _tab[0]      = _tab[--_count];
                _tab[_count] = null;                          /// Należy usunąć referencję do tego obiektu, by Garbage Collector mógł usunąć ten obiekt
                _tab[0].idx  = 0;

                naprawKopiec(0);
                wynik.czas = (float)(wynik.czas);
                return(wynik);
            }
        protected override void SymulujWiazke(int nrBadania, int nrSerii)
        {
            agendaType1 agendaSym = lZdarzen[nrBadania] as agendaType1;
            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));
                    }
                }

                double staryCzas = agendaSym.czas;
                agendaSym.czas = pierwszy.czas;
                double deltaT = agendaSym.czas - staryCzas;

                if (agendaSym.zapStatystyk)
                {
                    wiazka.Podlicz(deltaT);
                }
                else
                {
                    agendaSym.czasOczekiwania -= deltaT;
                }
                pierwszy.Obsluz();
            }

            KoniecSerii(nrBadania, nrSerii);
            lZdarzen[nrBadania].zajeta.ReleaseMutex();
            ZapiszWynikiSerii(nrBadania, nrSerii);
            aWiazka.DodPost();
        }
 public override void UsunProces(processSym usuwany)
 {
     usunElement(usuwany.idx);
 }
 public abstract void UsunProces(processSym usuwany);
 public abstract void DodajProces(processSym dodawany);