コード例 #1
0
 public ChangeGreenYellow(MainWindow mn, ChangeLight chgLight)
 {
     Thrd = new Thread(this.Run);
     Thrd.Name = "GYThread";
     main = mn;
     light = chgLight;
 }
コード例 #2
0
        public void ChangeIt(MainWindow cntrl)
        {
            lock (obj)
            {
                //Console.WriteLine(Thread.CurrentThread.Name);

                //Dispatcher disp;
                //object[] objs = { el };
                if (Thread.CurrentThread.Name == "RYThread" || Thread.CurrentThread.Name == "GYThread")
                    //Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, cntrl.myDelegateYellow);
                    cntrl.Dispatcher.Invoke(DispatcherPriority.Normal, cntrl.myDelegateYellow);
                if (Thread.CurrentThread.Name == "YRThread")
                    //Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, cntrl.myDelegateRed);
                    cntrl.Dispatcher.Invoke(DispatcherPriority.Normal, cntrl.myDelegateRed);
                if (Thread.CurrentThread.Name == "YGThread")
                    //Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, cntrl.myDelegateGreen);
                    cntrl.Dispatcher.Invoke(DispatcherPriority.Normal, cntrl.myDelegateGreen);
                //disp.Invoke(cntrl.myDelegate, el);
                //cntrl.Invoke(cntrl.myDelegate);

                //Console.WriteLine(el.Name);
                Thread.Sleep(1000);
                //Thread.CurrentThread.Join(1000);
            }
        }
コード例 #3
0
 public ChangeGreenYellow(MainWindow mn)
 {
     Thrd = new Thread(this.Run);
     Thrd.Name = "GYThread";
     main = mn;
     //ellipse = el;
     changeLight = new ChangeLight();
 }
コード例 #4
0
 //static ChangeLight chgLight = new ChangeLight();
 public ChangeGreenYellow(MainWindow mn)
 {
     Thrd = new Thread(this.Run);
     Thrd.Name = "GYThread";
     main = mn;
     light = new ChangeLight();
     //Thrd.Start();
 }
コード例 #5
0
 public void ChangeGY(Ellipse el, MainWindow cntrl)
 {
     lock (obj)
     {
         cntrl.Dispatcher.Invoke(DispatcherPriority.Normal, cntrl.myDelegate, el);
         Thread.Sleep(1000);
         Monitor.Pulse(obj);
         Monitor.Wait(obj);
     }
 }
コード例 #6
0
 public void ChangeIt(Ellipse el, MainWindow cntrl)
 {
     lock (obj)
     {
         object[] objs = { el };
         if(precessing)
             cntrl.Dispatcher.Invoke(cntrl.myDelegate, objs);
         Thread.Sleep(1000);
     }
 }
コード例 #7
0
 public void Change(Ellipse el, MainWindow cntrl)
 {
     cntrl.Dispatcher.Invoke(DispatcherPriority.Normal, cntrl.myDelegate, el);
     Thread.Sleep(1000);
 }
コード例 #8
0
 public ChangeYellowRed(MainWindow mn, ChangeLight chgLight)
 {
     Thrd = new Thread(this.Run);
     Thrd.Name = "YRThread";
     main = mn;
     light = chgLight;
     //Thrd.Start();
 }
コード例 #9
0
 public ChangeYellowRed(MainWindow mn)
 {
     Thrd = new Thread(this.Run);
     Thrd.Name = "YRThread";
     main = mn;
     changeLight = new ChangeLight();
     //ellipse = el;
 }