Вот такой код выполняется в отдельном классе(не статический, но экземпляр один) в таске:
WebClient wc = new WebClient();
DownloaderGroupBoxItem dgbi = new DownloaderGroupBoxItem(video.title, gbDownloadingPanel);
Token token = new Token(video, dgbi);
wc.DownloadProgressChanged += Wc_DownloadProgressChanged;
wc.DownloadFileCompleted += Wc_DownloadFileCompleted;
string filePath = GetPathForVideoFile(group.name, album.title, video.title);
wc.DownloadFileAsync(new Uri(videoUrl), filePath, token);
webClients.Add(wc);
Log.WriteInFile("Загружаем...");
//ожидаем свободные потоки
while (webClients.Count >= threadsCount) ;
Вот событие(находится в том же классе):
public void Wc_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
WebClient wc = (WebClient)sender;
webClients.Remove(wc);
Token token = (Token)e.UserState;
token.dgbi.Remove();
Log.WriteInDownloader("Успешно скачали " + token.video.title);
}
Проставилял брейкпоинты. Объект wc на события подписывается. Но ни один из брейкпоинтов в событии не отозвался. Файлы качаются(появляются в папке). С событием Wc_DownloadProgressChanged та же беда.
Надеюсь на вашу помощь!
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости