void Run(object obj)
 {
     while (true)
     {
         ChangeLight.autoResetEvent.WaitOne();
         if (ChangeLight.precessing)
         {
             light.Change((Ellipse)obj, main);
             ChangeLight.autoResetEvent.Set();
         }
         else
         {
             break;
         }
     }
 }
 void Run(object obj)
 {
     while (true)
     {
         ChangeLight.semaphore.WaitOne();
         if (ChangeLight.precessing)
         {
             light.Change((Ellipse)obj, main);
             ChangeLight.semaphore.Release();
         }
         else
         {
             ChangeLight.semaphore.Release();
             break;
         }
     }
 }
 void Run(object obj)
 {
     while (true)
     {
         ChangeLight.mtx.WaitOne();
         if (ChangeLight.precessing)
         {
             ChangeLight.Change((Ellipse)obj, main);
             ChangeLight.mtx.ReleaseMutex();
             ChangeLight.mtx.WaitOne();
         }
         else
         {
             break;
         }
     }
 }