StreamedFileDataRequestedHandler Délégué

Définition

Représente la méthode qui diffusera des données dans un StorageFile lors de la première consultation de ce fichier.

public delegate void StreamedFileDataRequestedHandler(StreamedFileDataRequest ^ stream);
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(4277577764, 12257, 19719, 163, 91, 183, 124, 80, 181, 244, 204)]
class StreamedFileDataRequestedHandler : MulticastDelegate
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(4277577764, 12257, 19719, 163, 91, 183, 124, 80, 181, 244, 204)]
public delegate void StreamedFileDataRequestedHandler(StreamedFileDataRequest stream);
var streamedFileDataRequestedHandlerHandler = function(stream){
/* Your code */
}
Public Delegate Sub StreamedFileDataRequestedHandler(stream As StreamedFileDataRequest)

Paramètres

stream
StreamedFileDataRequest

Demande des données diffusées dans le StorageFile créé par la méthode CreateStreamedFileAsync ou ReplaceWithStreamedFileAsync .

Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

L’exemple simple suivant montre comment créer un instance du délégué StreamedFileDataRequestedHandler. L’exemple montre également comment cette instance produit le flux de données pour le StorageFile qui a été retourné par CreateStreamedFileAsync lors de la première consultation du fichier.

Cet exemple simple est destiné uniquement à illustrer le modèle de programmation pour l’utilisation du délégué StreamedFileDataRequestedHandler. Pour un petit fichier avec des données faciles à produire, le modèle de diffusion en continu n’est pas utile.

using Windows.Storage;
using Windows.Storage.Streams;

private async void CreateStreamedFile()
{
    // Create a streamed file.
    StorageFile file =
    await StorageFile.CreateStreamedFileAsync("file.txt",
        StreamedFileWriter, null);

    // Prepare to copy the file.
    StorageFolder localFolder = ApplicationData.Current.LocalFolder;
    string newName = "copied_file.txt";

    // Copy the streamed file. At this point,
    // the data is streamed into the source file.
    await file.CopyAsync(localFolder, newName,
        NameCollisionOption.ReplaceExisting);
}

private async void StreamedFileWriter(StreamedFileDataRequest request)
{
    try
    {
        using (var stream = request.AsStreamForWrite())
        using (var streamWriter = new StreamWriter(stream))
        {
            for (int l = 0; l < 50; l++)
            {
                await streamWriter.WriteLineAsync("Data.");
            }
        }
        request.Dispose();
    }
    catch (Exception ex)
    {
        request.FailAndClose(StreamedFileFailureMode.Incomplete);
    }
}

Remarques

Le instance du délégué que vous créez génère le flux de données pour le StorageFile retourné par la méthode CreateStreamedFileAsync ou ReplaceWithStreamedFileAsync.

Lorsque vous utilisez la méthode CreateStreamedFileAsync ou ReplaceWithStreamedFileAsync avec un instance de StreamedFileDataRequestedHandler, vous pouvez fournir les données d’un fichier à la demande au lieu d’écrire le contenu d’un fichier lorsque vous le créez. Autrement dit, vous pouvez différer les opérations coûteuses pour produire les données du fichier jusqu’à ce que le fichier soit utilisé pour la première fois.

S’applique à