コード例 #1
0
        public void LadujDostawczak()
        {
            coRobie = Zajety.laduje;
            Przesylka tymczasowa;

            skrzynkaDoRozladunku.mutSkrz.WaitOne();
            if (skrzynkaDoRozladunku.zaladunek.Count != 0)
            {
                tymczasowa = skrzynkaDoRozladunku.zaladunek.Dequeue();
                Thread.Sleep(100);
                skrzynkaDoRozladunku.mutSkrz.ReleaseMutex();

                Thread.Sleep(100 + (int)(tymczasowa.masa * 30));

                dostawczakDoZaladunku.mutDos.WaitOne();
                dostawczakDoZaladunku.zaladunek.Enqueue(tymczasowa);
                dostawczakDoZaladunku.mutDos.ReleaseMutex();
            }
            else
            {
                skrzynkaDoRozladunku.mutSkrz.ReleaseMutex();
                skrzynkaDoRozladunku  = null;
                dostawczakDoZaladunku = null;
                Thread.MemoryBarrier();
                coMaszRobic = Zajety.wolny;
            }
        }
コード例 #2
0
 public void RozladujDostawczak()
 {
     coRobie = Zajety.rozladowuje;
     dostawczakDoRozladunku.mutDos.WaitOne();
     if (dostawczakDoRozladunku.zaladunek.Count != 0)
     {
         Thread.Sleep(100);
         Przesylka tymczasowa = dostawczakDoRozladunku.zaladunek.Dequeue();
         dostawczakDoRozladunku.mutDos.ReleaseMutex();
         Thread.Sleep(100 + (int)(tymczasowa.masa * 10));
     }
     else
     {
         dostawczakDoRozladunku.mutDos.ReleaseMutex();
         dostawczakDoRozladunku = null;
         Thread.MemoryBarrier();
         coMaszRobic = Zajety.wolny;
     }
 }