private void CheckProxyServers()
 {
     try
     {
         Loading = true;
         ProxyServers.Clear();
         var testTargetUri = TestTargetUri;
         if (testTargetUri != null)
         {
             var route = ProxyClient.CreateRoute(LocalProxy);
             foreach (var hostEndPoint in ProxyPageScanner.ScanPage(ProxyPage.PageUri, ProxyPage.ParseAsText, ProxyPage.HostPortEx, route, testTargetUri))
             {
                 var ipEndPoint = hostEndPoint.IPEndPoint;
                 if (ipEndPoint == null)
                 {
                     continue;
                 }
                 var location = Geolocation.Locate(ipEndPoint.Address, route);
                 var p        = ProxyAnalyzer.MeasurePerformance(route, testTargetUri);
                 if (p == null)
                 {
                     continue;
                 }
                 var proxy = new Proxy(hostEndPoint, location, (int)p.Ping.TotalMilliseconds, (int)(p.DownloadSpeed / 1024));
                 ProxyServers.Add(proxy);
             }
         }
     }
     finally
     {
         Loading = false;
     }
 }