2014-01-14 5 views
2

Использование WebClient в приложении WPF, следующий код отлично работает, когда изображение загружается правильно.Как получить параметр из DownloadDataAsync?

Мне нужно передать некоторые параметры ImageDownloadCompleted, чтобы точно знать, какое изображение было только что загружено.

Использование webClient.DownloadDataAsync(new Uri(url), url); Я не могу получить требуемый результат.

Что я здесь делаю неправильно?

PS: В принципе, я бы использовал эти параметры для заказа в массиве изображений. Если это еще один способ добиться этого, пожалуйста, дайте мне знать.

private void DownloadAndPrintImagesAsync(IEnumerable<string> urls) 
    { 
     foreach (var url in urls) 
     { 
      var webClient = new WebClient(); 
      webClient.DownloadDataCompleted += ImageDownloadCompleted; 
      webClient.DownloadDataAsync(new Uri(url), url); // I want to pass url 
     } 
    } 

    private void ImageDownloadCompleted(object sender, DownloadDataCompletedEventArgs e) 
    { 
     if (!e.Cancelled && e.Error == null) 
     { 

      // I need to get url here 
     } 
    } 

ответ

3

Это в UserState свойство DownloadDataCompletedEventArgs аргумента:

private void ImageDownloadCompleted(object sender, DownloadDataCompletedEventArgs e) 
{ 
    if (!e.Cancelled && e.Error == null) 
    { 
     var url = (string)e.UserState; 
     ... 
    } 
} 
Смежные вопросы