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