Compartilhar via


DownloadOperation.StartAsync Método

Definição

Inicia uma operação de download assíncrona.

public:
 virtual IAsyncOperationWithProgress<DownloadOperation ^, DownloadOperation ^> ^ StartAsync() = StartAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DownloadOperation, DownloadOperation const&> StartAsync();
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DownloadOperation,DownloadOperation> StartAsync();
function startAsync()
Public Function StartAsync () As IAsyncOperationWithProgress(Of DownloadOperation, DownloadOperation)

Retornos

Uma operação de download assíncrona que inclui atualizações de progresso.

Atributos

Comentários

Exceções

COMException

Gerado quando um HRESULT específico do recurso é retornado de uma chamada de método.

Essa é a exceção mais comum gerada pelos métodos de rede. Um aplicativo deve usar o HRESULT da exceção para determinar a causa do erro.

AccessDeniedException

Gerada quando o acesso a um recurso é negado. Essa exceção ocorre quando um aplicativo não tem os recursos de rede necessários definidos no manifesto do aplicativo para a operação de rede solicitada.

InvalidArgumentException

Gerada quando um dos argumentos fornecidos a um método não é válido.

Se a entrada fornecida pelo usuário tiver causado essa exceção, um aplicativo poderá informar o usuário e solicitar uma nova entrada.

ObjectDisposedException

Gerada quando uma operação é executada em um objeto descartado.

OutOfMemoryException

Gerada quando a memória insuficiente está disponível para concluir a operação.

A transferência em segundo plano não dá suporte a downloads simultâneos do mesmo URI. Portanto, um aplicativo pode baixar http://example.com/myfile.wmv uma vez ou baixá-lo novamente após a conclusão de um download anterior. Um aplicativo não deve iniciar dois downloads do mesmo Uri simultaneamente, pois isso pode resultar em arquivos truncados.

Uma operação de download deve ser agendada usando um dos métodos BackgroundDownloader.CreateDownload ou BackgroundDownloader.CreateDownloadAsync antes que o método StartAsync seja chamado.

Importante

O enfileiramento de um grande número de transferências no thread de interface do usuário do main pode resultar em um desempenho degradado da interface do usuário do aplicativo, mesmo que a chamada seja aguardável. Se você estiver enfileirando um grande número de transferências, é recomendável chamar StartAsync em um thread de trabalho em segundo plano como no exemplo a seguir.

operation = await Task.Run(() => { return myDownloadOperation.StartAsync(); });

Aplica-se a

Confira também