public void Trigger(object sender) { try { double valA = 0.0; if (CurrentChannel.InputA != null) { valA = CurrentChannel.InputA.SignalDelegate(); } double valB = 0.0; if (CurrentChannel.InputB != null) { valB = CurrentChannel.InputB.SignalDelegate(); } // Invoke from main thread Action <object> TriggerDele = Trigger; if (ui.InvokeRequired) { ui.Invoke(TriggerDele, new object[] { sender }); return; } ui.labelSigAOutput.Text = String.Format("{0:0.00}", valA); ui.labelSigBOutput.Text = String.Format("{0:0.00}", valB); ui.checkBoxTriggerOn.Checked = true; ui.velocityMapControl.SetTrigger(CurrentChannel.Signals[0].SignalDelegate()); ui.textBoxOutput.Text = String.Format("{0:0.00}", CurrentChannel.Signals[0].SignalDelegate()); ui.TriggerTimer.Stop(); ui.TriggerTimer.Start(); } catch (Exception e) { } }