Я пробовал ваш код, вы можете запутаться при отладке, Visual Studio показывает downloads
тип не IReadOnlyList<DownloadOperation>
, а System._ComObject
.
Это потому, что BackgroundDownloader.GetCurrentDownloadsAsync
- это данные, полученные через интерфейс COM, поэтому Visual Studio будет отображаться как System._ComObject
, это только временное состояние.
При отладке, если вы развернете downloads
, вы увидите m_ObjectToDataMap = null
, что также является результатом Вывод Visual Studio на основе текущего контекста. Обычно нам не нужно учитывать тип System._ComObject
при разработке, приложение преобразует его в тип IReadOnlyList<DownloadOperation>
после получения данных.
Результат, возвращаемый BackgroundDownloader.GetCurrentDownloadsAsync()
, равен нулю, что указывает на то, что в настоящее время нет ожидающей загрузки коллекции, связанной с группой фоновой передачи.
Здесь следует отметить два основных момента.
Первый - это ожидающая загрузка. Это означает, что вы создали DownloadOpeartion
и загрузили его, но завершили работу до завершения (например, закрыли приложение). В следующий раз, когда вы запустите приложение, вы можете получить последний незавершенный список загрузок с помощью метода GetCurrentDownloadsAsync
. Но если вы запустите загрузку по тому же адресу при запуске приложения, оно заменит последнюю незавершенную загрузку, потому что BackgroundDownloader
не поддерживает одновременные загрузки одного и того же Uri.
Во-вторых, список загрузок полученное вами не входит в определенную группу c, иначе вы не сможете получить его с помощью метода GetCurrentDownloadsAsync
.