Beispiel #1
0
 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();
             }));
         }
     }
 }