public static void CancelNonComTrain(byte TrainID) { string PreNonComTrainPosition; string PreNonComTrainPositionSectionName; lock (NonCommunicationTrain.LoseTrain) { PreNonComTrainPosition = (Convert.ToInt16(NonCommunicationTrain.LoseTrain[TrainID][1]) * 256 + Convert.ToInt16(NonCommunicationTrain.LoseTrain[TrainID][0])).ToString(); PreNonComTrainPositionSectionName = (Convert.ToInt16(NonCommunicationTrain.LoseTrain[TrainID][2])).ToString(); NonCommunicationTrain.LoseTrain.Remove(TrainID); } if (UpdateInfo.TraverseSection(PreNonComTrainPosition) != null) { Section section = UpdateInfo.TraverseSection(PreNonComTrainPosition); section.HasNonComTrain.Remove(TrainID); System.Windows.Application.Current.Dispatcher.Invoke( new Action( delegate { section.InvalidateVisual(); })); } else if (UpdateInfo.TraverseRailSwitch(PreNonComTrainPosition, PreNonComTrainPositionSectionName) != null) { RailSwitch railswitch = UpdateInfo.TraverseRailSwitch(PreNonComTrainPosition, PreNonComTrainPositionSectionName); railswitch.HasNonComTrain.Remove(TrainID); System.Windows.Application.Current.Dispatcher.Invoke(new Action(delegate { railswitch.InvalidateVisual(); })); } }
private void UpdateLostTrain() { foreach (var item in LoseTrain.Keys) { string TrainSection = (Convert.ToInt16(LoseTrain[item][1]) * 256 + Convert.ToInt16(LoseTrain[item][0])).ToString(); string RailSwitch = (Convert.ToInt16(LoseTrain[item][2])).ToString(); if (TraverseSection(TrainSection) != null) { Section section = TraverseSection(TrainSection); if (!section.HasNonComTrain.Contains(item)) { section.HasNonComTrain.Add(item); } System.Windows.Application.Current.Dispatcher.Invoke( new Action( delegate { section.InvalidateVisual(); })); } else if (TraverseRailSwitch(TrainSection, RailSwitch) != null) { RailSwitch railswitch = TraverseRailSwitch(TrainSection, RailSwitch); if (railswitch.HasNonComTrain.Contains(item)) { railswitch.HasNonComTrain.Add(item); } System.Windows.Application.Current.Dispatcher.Invoke(new Action(delegate { railswitch.InvalidateVisual(); })); } } }