Freigeben über


StreamedFileDataRequestedHandler Delegat

Definition

Stellt die Methode dar, die Daten beim ersten Zugriff auf diese Datei in eine StorageFile-Datei streamt.

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)

Parameter

stream
StreamedFileDataRequest

Die Anforderung für die gestreamten Daten in der StorageFile-Datei , die von der CreateStreamedFileAsync - oder ReplaceWithStreamedFileAsync-Methode erstellt wurde.

Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

Im folgenden einfachen Beispiel wird veranschaulicht, wie Sie eine instance des StreamedFileDataRequestedHandler-Delegaten erstellen. Das Beispiel zeigt auch, wie dieser instance den Datenstrom für die StorageFile erzeugt, der vom CreateStreamedFileAsync beim ersten Zugriff auf die Datei zurückgegeben wurde.

In diesem einfachen Beispiel soll nur das Programmiermuster für die Verwendung des StreamedFileDataRequestedHandler-Delegaten veranschaulicht werden. Für eine kleine Datei mit Daten, die einfach zu erstellen sind, ist das Streamingmuster nicht nützlich.

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);
    }
}

Hinweise

Die instance des delegaten, den Sie erstellen, erzeugt den Datenstrom für die StorageFile, der von der CreateStreamedFileAsync- oder ReplaceWithStreamedFileAsync-Methode zurückgegeben wurde.

Wenn Sie die CreateStreamedFileAsync- oder ReplaceWithStreamedFileAsync-Methode zusammen mit einer instance streamedFileDataRequestedHandler verwenden, können Sie die Daten für eine Datei bei Bedarf bereitstellen, anstatt den Inhalt einer Datei beim Erstellen zu schreiben. Das heißt, Sie können teure Vorgänge zurückstellen, um die Daten für die Datei zu erstellen, bis zuerst auf die Datei zugegriffen wird.

Gilt für: