Проблема при выполнении метода DownloadToFIleParallelAsync - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь загрузить Azure BLOB-объект в локальный файл, используя метод DownloadToFIleParallelAsync, чтобы сократить время, необходимое для загрузки. Но выполнение моей программы продолжается, когда выполняется эта строка. Никаких операторов после этой строки не выполняется. Вот код, который я написал.

    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Threading;
    using Microsoft.WindowsAzure.Storage;
    using Microsoft.WindowsAzure.Storage.Blob;
    namespace demoAzure {     
    class Program     
    {         
    static void Main(string[] args)        
     {            
     var watch = System.Diagnostics.Stopwatch.StartNew();             Console.WriteLine("Downloading...");             ProcessBlob().GetAwaiter().GetResult();                         
    watch.Stop();            
    Console.WriteLine( "Execution Time: " + watch.ElapsedMilliseconds + " Milliseconds");           
     Console.ReadLine();         
    }         

    private static async Task ProcessBlob()        
     {             
    string storageconnectionstring = Environment.GetEnvironmentVariable("storageconnectionstring");             CloudStorageAccount storageAccount = null;             
    CloudBlobContainer container = null;              
    string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);             string blobName = "large rfa_15mb.RFA";             
    string downloadFilePath = Path.Combine(folderPath, blobName);              
    if (CloudStorageAccount.TryParse(storageconnectionstring, out storageAccount))             {                
     try                
     {                     
    CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();                     container = blobClient.GetContainerReference("blobcontainer");                     await container.CreateIfNotExistsAsync();                      
    CloudBlockBlob blob = container.GetBlockBlobReference(blobName);                                          //await blob.DownloadToFileAsync(downloadFilePath, FileMode.Create); 
await blob.DownloadToFileParallelAsync(downloadFilePath, FileMode.Create, 2, 4 * 1024 * 1024);                     
// blob.DownloadToFile(downloadFilePath, FileMode.Create);                                         Console.WriteLine("completed");    
                 }                
     catch (Exception ex)                
     {                    
     Console.WriteLine(ex.Message); 

     }             
    }            
     else            
     {                
     Console.WriteLine("No system environment variables are available. please set one");            
     }       
      }            
      } } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...