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); } } }
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) { } } }