Я хотел бы обернуть метод WebClient.DownloadFileAsync , который на самом деле не является блокирующим, в метод , который возвращает задание и его можно ожидать до завершения загрузки .
Я понимаю логику, с которой связано включение в событие DownloadFileCompleted, как объяснено здесь (и во многих других сообщениях), но я бы хотел обернуть его во что-то более удобное для пользователя. И мои знания об асинхронном программировании довольно поверхностны.
Лучшее, что я могу придумать, - это обернуть метод DownloadFile (синхронный) в задание и вернуть его, но я много раз читал, что оборачиваем синхронный метод ва асинхронный - не очень хорошая практика
return Task.Run(() =>client.DownloadFile(fileUri, localPath));
На самом деле, впервые я встречаю асинхронный метод, который не является ожидаемым, есть ли причина, по которой его так считают?
Спасибо