BackgroundDownloader.CreateDownload Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
CreateDownload(Uri, IStorageFile) |
Inizializza un oggetto DownloadOperation contenente l'URI specificato e il file in cui viene scritta la risposta. |
CreateDownload(Uri, IStorageFile, IStorageFile) |
Inizializza un oggetto DownloadOperation con l'URI della risorsa, il file in cui viene scritta la risposta e il corpo dell'entità della richiesta. |
CreateDownload(Uri, IStorageFile)
Inizializza un oggetto DownloadOperation contenente l'URI specificato e il file in cui viene scritta la risposta.
public:
virtual DownloadOperation ^ CreateDownload(Uri ^ uri, IStorageFile ^ resultFile) = CreateDownload;
/// [Windows.Foundation.Metadata.Overload("CreateDownload")]
DownloadOperation CreateDownload(Uri const& uri, IStorageFile const& resultFile);
[Windows.Foundation.Metadata.Overload("CreateDownload")]
public DownloadOperation CreateDownload(System.Uri uri, IStorageFile resultFile);
function createDownload(uri, resultFile)
Public Function CreateDownload (uri As Uri, resultFile As IStorageFile) As DownloadOperation
Parametri
- resultFile
- IStorageFile
File in cui verrà scritta la risposta.
Restituisce
Operazione di download risultante.
- Attributi
Commenti
Il trasferimento in background non supporta i download simultanei dello stesso URI. Quindi un'app può scaricarla http://example.com/myfile.wmv
una sola volta o scaricarla di nuovo dopo il completamento di un download precedente. Un'app non deve avviare due download dello stesso URI contemporaneamente, perché ciò può comportare il troncamento dei file.
Importante
La creazione di un numero elevato di trasferimenti nel thread principale dell'interfaccia utente con CreateDownload può comportare una riduzione delle prestazioni dell'interfaccia utente dell'app. Se si accoda un numero elevato di trasferimenti, è consigliabile chiamare CreateDownload in un thread di lavoro in background come nell'esempio seguente.
operation = await Task.Run(() => { return myDownloader.CreateDownload(uri, file); });
Nota
Alcuni file system hanno limiti di dimensioni dei file. Il trasferimento in background ha una logica speciale per i trasferimenti con errori rapidi che superano i limiti delle dimensioni del file dell'unità di destinazione (ad esempio, i file che superano i 4 GB di dimensioni per i file system FAT32). Se il server risponde con un Content-Length
valore di intestazione maggiore della dimensione massima del file system, l'operazione di download non riesce immediatamente con HRESULT_FROM_WIN32(ERROR_FILE_SYSTEM_LIMITATION).
Vedi anche
Si applica a
CreateDownload(Uri, IStorageFile, IStorageFile)
Inizializza un oggetto DownloadOperation con l'URI della risorsa, il file in cui viene scritta la risposta e il corpo dell'entità della richiesta.
public:
virtual DownloadOperation ^ CreateDownload(Uri ^ uri, IStorageFile ^ resultFile, IStorageFile ^ requestBodyFile) = CreateDownload;
/// [Windows.Foundation.Metadata.Overload("CreateDownloadFromFile")]
DownloadOperation CreateDownload(Uri const& uri, IStorageFile const& resultFile, IStorageFile const& requestBodyFile);
[Windows.Foundation.Metadata.Overload("CreateDownloadFromFile")]
public DownloadOperation CreateDownload(System.Uri uri, IStorageFile resultFile, IStorageFile requestBodyFile);
function createDownload(uri, resultFile, requestBodyFile)
Public Function CreateDownload (uri As Uri, resultFile As IStorageFile, requestBodyFile As IStorageFile) As DownloadOperation
Parametri
- resultFile
- IStorageFile
File in cui verrà scritta la risposta.
- requestBodyFile
- IStorageFile
File che rappresenta il corpo dell'entità richiesta, che contiene dati aggiuntivi richiesti dal server prima che il download possa iniziare. Il file a cui punta questo oggetto deve essere valido per la durata del download.
Restituisce
Operazione di download risultante.
- Attributi
Commenti
DownloadOperation risultante supporta scenari in cui una richiesta di download valida contiene dati specifici richiesti dal server. Ad esempio, un sito Web richiede un modulo compilato prima che il download possa essere eseguito.
Il trasferimento in background non supporta i download simultanei dello stesso URI. Quindi un'app può scaricarla http://example.com/myfile.wmv
una sola volta o scaricarla di nuovo dopo il completamento di un download precedente. Un'app non deve avviare due download dello stesso URI contemporaneamente, perché ciò può comportare il troncamento dei file.
Importante
La creazione di un numero elevato di trasferimenti nel thread principale dell'interfaccia utente con CreateDownload può comportare una riduzione delle prestazioni dell'interfaccia utente dell'app. Se si accoda un numero elevato di trasferimenti, è consigliabile chiamare CreateDownload in un thread di lavoro in background come nell'esempio seguente.
operation = await Task.Run(() => { return myDownloader.CreateDownload(uri, file); });
Nota
Alcuni file system hanno limiti di dimensioni dei file. Il trasferimento in background ha una logica speciale per i trasferimenti con errori rapidi che superano i limiti delle dimensioni del file dell'unità di destinazione (ad esempio, i file che superano i 4 GB di dimensioni per i file system FAT32). Se il server risponde con un Content-Length
valore di intestazione maggiore della dimensione massima del file system, l'operazione di download non riesce immediatamente con HRESULT_FROM_WIN32(ERROR_FILE_SYSTEM_LIMITATION).