Exemplo n.º 1
0
 private void UpdateNavaidsFiles()
 {
     Task.Factory.StartNew(() =>
     {
         StopUpdatingNavaids();
         NavaidsDataLoad = "Downloading";
         NavaidsDataHelper.UpdateDataFiles();
         LoadNavaidsDataTask();
         StartUpdatingNavaids();
     });
 }
Exemplo n.º 2
0
        private void UpdateNavaids(CancellationToken ct)
        {
            while (true)
            {
                if (ct.IsCancellationRequested)
                {
                    break;
                }

                lock (_navaidsDataLoadedLock)
                {
                    if (!_navaidsDataLoaded)
                    {
                        Task.Delay(Constants.UpdateNavaidsDelay).GetAwaiter().GetResult();
                        continue;
                    }
                }

                Location planePoint;
                lock (_planeLocationLock)
                {
                    if (_planeLocation == null)
                    {
                        Task.Delay(Constants.UpdateNavaidsDelay).GetAwaiter().GetResult();
                        continue;
                    }
                    planePoint = new Location(_planeLocation);
                }


                List <Distance> navaidsDistanceList = null;
                lock (_navaidsDataLock)
                {
                    double maxDistanceInM = SelectedDistanceKmValueList * 1000;
                    navaidsDistanceList = NavaidsDataHelper.GetDistanceList(_navaidsData.Navaids, planePoint.Latitude, planePoint.Longitude, maxDistanceInM, NavaidSettingsToArray());
                }

                _mapVM.RemovePushPins();
                NavaidsText = "";
                foreach (var navaidDistance in navaidsDistanceList)
                {
                    Location loc = new Location(navaidDistance.Navaid.Latitude, navaidDistance.Navaid.Longitude);

                    _mapVM.AddPushPin(loc, navaidDistance.Navaid.Id);
                    NavaidsText += navaidDistance.Navaid.ToString();
                    NavaidsText += Environment.NewLine;
                }
                Task.Delay(Constants.UpdateNavaidsDelay).GetAwaiter().GetResult();
            }
        }
Exemplo n.º 3
0
 private void LoadNavaidsDataTask()
 {
     Task.Factory.StartNew(() =>
     {
         lock (_navaidsDataLoadedLock)
         {
             NavaidsDataLoad    = "Loading";
             _navaidsDataLoaded = false;
         }
         NavaidsData navaidsData = NavaidsDataHelper.LoadData();
         lock (_navaidsDataLock)
         {
             _navaidsData = navaidsData;
         }
         lock (_navaidsDataLoadedLock)
         {
             NavaidsDataLoad    = "Loaded";
             _navaidsDataLoaded = true;
         }
     });
 }