public override void Obsluz()
        {
            switch (faza)
            {
            case processStage.oczekiwanie:      //Zgłoszenie trafia do systemu
                processCall nowe = new processPascal(ListaZd, klasaZgl.czNowegoZgl, symKlasaPascal, nrZr);
                ListaZd.DodajProces(nowe);
                symKlasaPascal.zrodla[nrZr] = nowe;

                if (klasaZgl.sWiazka.DodajZgl(this, ListaZd.zapStatystyk))         //próba zajęcia zasobów
                {
                    faza = processStage.zgloszenie;
                    czas = klasaZgl.czZakZgl;           //Losowanie czasu zakończenia obsługi zgłoszenia
                    ListaZd.DodajProces(this);          //Ponowne umieszczanie procesu na liście
                    nrNowoDodanegoZr = symKlasaPascal.znajdzWolneZr();
                    symKlasaPascal.zrodla[nrNowoDodanegoZr] = new processPascal(ListaZd, klasaZgl.czNowegoZgl, symKlasaPascal, nrNowoDodanegoZr);
                    ListaZd.DodajProces(symKlasaPascal.zrodla[nrNowoDodanegoZr]);
                }
                else
                {
                    if (ListaZd.zapStatystyk)
                    {
                        klasaZgl.lStraconychZgl++;          //Uaktualnianie statystyk klasy
                        klasaZgl.warWyjsciaStr--;
                        if (klasaZgl.warWyjsciaStr == 0)
                        {
                            klasaZgl.sWiazka.WarWyjscia--;        //Warunkiem wyjścia jest odpowiednia liczba str zgłoszeń
                        }
                    }
                }
                break;

            //Kończenie obsługi zgłoszenia
            case processStage.zgloszenie:
                klasaZgl.sWiazka.UsunZgl(this);             //Zwalnianie zasobów
                if (ListaZd.zapStatystyk)
                {
                    klasaZgl.lObsluzonychZgl++;             //Uaktualnianie statystyk klasu
                    klasaZgl.warWyjsciaObsl--;
                    if (klasaZgl.warWyjsciaObsl == 0)
                    {
                        klasaZgl.sWiazka.WarWyjscia2--;           //Awaryjnym warunkiem wyjścia jest przesymulowanie okr liczby zgł
                    }
                }
                faza = processStage.zakonczenie;
                ListaZd.UsunProces(symKlasaPascal.zrodla[nrNowoDodanegoZr]);
                symKlasaPascal.zrodla[nrNowoDodanegoZr] = null;
                break;
            }
        }
        public override void Obsluz()
        {
            switch (faza)
            {
            case processStage.oczekiwanie:
                //Zgłoszenie trafia do systemu
                if (klasaZgl.sWiazka.DodajZgl(this, ListaZd.zapStatystyk))         //próba zajęcia zasobów
                {
                    faza = processStage.zgloszenie;
                    czas = klasaZgl.czZakZgl;               //Losowanie czasu zakończenia obsługi zgłoszenia
                    ListaZd.DodajProces(this);              //Ponowne umieszczanie procesu na liście
                }
                else
                {
                    processSym nowe = new processEngset(ListaZd, klasaZgl.czNowegoZgl, klasaZgl);
                    ListaZd.DodajProces(nowe);
                    if (ListaZd.zapStatystyk)
                    {
                        klasaZgl.lStraconychZgl++;              //Uaktualnianie statystyk klasy
                        klasaZgl.warWyjsciaStr--;
                        if (klasaZgl.warWyjsciaStr == 0)
                        {
                            klasaZgl.sWiazka.WarWyjscia--;      //Warunkiem wyjścia jest odpowiednia liczba str zgłoszeń dla każdej z klas
                        }
                    }
                }
                break;

            //Kończenie obsługi zgłoszenia
            case processStage.zgloszenie:
                klasaZgl.sWiazka.UsunZgl(this);                 //Zwalnianie zasobów
                ListaZd.DodajProces(new processEngset(ListaZd, klasaZgl.czNowegoZgl, klasaZgl));
                if (ListaZd.zapStatystyk)
                {
                    klasaZgl.lObsluzonychZgl++;                 //Uaktualnianie statystyk klasu
                    klasaZgl.warWyjsciaObsl--;
                    if (klasaZgl.warWyjsciaObsl == 0)
                    {
                        klasaZgl.sWiazka.WarWyjscia2--;         //Awaryjnym warunkiem wyjścia jest przesymulowanie okr liczby zgł
                    }
                }
                faza = processStage.zakonczenie;
                break;
            }
        }