private static async Task<ExtractedImageData> TryExtractImageDataFromUri(Uri uri)
 {
     ExtractedImageData rv = new ExtractedImageData { Success = false };
     try
     {
         using (WebClient webClient = new WebClient())
         {
             int threadIdBefore = System.Threading.Thread.CurrentThread.ManagedThreadId;
             rv.ImageData = await webClient.DownloadDataTaskAsync(uri.ToString());
             int threadIdAfter = System.Threading.Thread.CurrentThread.ManagedThreadId;
             rv.Success = true;
         }
     }
     catch
     {
         rv.Success = false;
     }
     return rv;
 }
        private static async Task <ExtractedImageData> TryExtractImageDataFromUri(Uri uri)
        {
            ExtractedImageData rv = new ExtractedImageData {
                Success = false
            };

            try
            {
                using (WebClient webClient = new WebClient())
                {
                    int threadIdBefore = System.Threading.Thread.CurrentThread.ManagedThreadId;
                    rv.ImageData = await webClient.DownloadDataTaskAsync(uri.ToString());

                    int threadIdAfter = System.Threading.Thread.CurrentThread.ManagedThreadId;
                    rv.Success = true;
                }
            }
            catch
            {
                rv.Success = false;
            }
            return(rv);
        }