예제 #1
0
 public void AddCallBack(string tag, ControllerStateCallBackHandler callback)
 {
     if (callback == null)
     {
         return;
     }
     if (tag == null)
     {
         tag = "";
     }
     if (!CallBacks.ContainsKey(tag))
     {
         CallBacks.Add(tag, callback);
         if (CallBacks.Count > 1)
         {
             callback.BeginInvoke(_controler, _connected, lastState, true, false, null, null);
         }
     }
 }
예제 #2
0
 public void AddController(Controller ctrlr, ControllerStateCallBackHandler callback, string tag)
 {
     lock (_controllerThreads)
     {
         try
         {
             if (ctrlr == null)
             {
                 return;
             }
             if (callback == null)
             {
                 return;
             }
             var ctrlthread = _controllerThreads.Find(m => m.Controller.sn == ctrlr.sn);
             if (ctrlthread == null)
             {
                 ctrlthread = new AccessWatchThread(_scanInterval);
                 ctrlthread.Tags.Add(tag);
                 ctrlthread.Controller = ctrlr;
                 _controllerThreads.Add(ctrlthread);
                 ctrlthread.Controller = ctrlr;
                 ctrlthread.AddCallBack(tag, callback);
                 ctrlthread.Start();
             }
             else
             {
                 if (!ctrlthread.Tags.Contains(tag))
                 {
                     ctrlthread.Controller = ctrlr;
                     ctrlthread.AddCallBack(tag, callback);
                     ctrlthread.Tags.Add(tag);
                 }
             }
         }
         catch (Exception)
         {
         }
     }
 }