private void signal_OnSignalChanged(object sender, SignalChangeType change) { if (InvokeRequired) { //handle thread safety SignalChanged d = new SignalChanged(signal_OnSignalChanged); try { if (IsDisposed == false) { Invoke(d, new object[] { sender, change }); } } catch (ObjectDisposedException) { //although it should be not possible, catch it here } } else { Size = CheckSize(Size); if (change == SignalChangeType.SignalGraph) { UpdateDrawing(); } else { UpdateBackground(); } Invalidate(); } }
internal virtual void OnSignalChanged(string eventDetails, string train, RailwayCrossingLogger railwayCrossingLogger) { Console.WriteLine("{0}({1}-{2})", eventDetails, this.Name, train); SignalChanged?.Invoke(this, eventDetails, railwayCrossingLogger); }
protected void UpdateSignal(bool?input1, bool?input2, bool?output) { SignalChanged?.Invoke(input1, input2, output); }
public void ResetSignal() { SignalChanged?.Invoke(null, null, null); }