StreamedFileDataRequestedHandler 代理人
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
そのファイルが最初にアクセスされたときに StorageFile にデータをストリーミングするメソッドを表します。
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)
パラメーター
- stream
- StreamedFileDataRequest
CreateStreamedFileAsync メソッドまたは ReplaceWithStreamedFileAsync メソッドによって作成された StorageFile 内のストリーミング データの要求。
- 属性
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0 で導入)
|
例
次の簡単な例では、StreamedFileDataRequestedHandler デリゲートのインスタンスを作成する方法を示します。 この例では、このインスタンスが、ファイルが最初にアクセスされたときに CreateStreamedFileAsync によって返された StorageFile のデータ ストリームを生成する方法も示しています。
この簡単な例は、StreamedFileDataRequestedHandler デリゲートを使用するためのプログラミング パターンを示すことを目的としています。 生成しやすいデータを含む小さなファイルの場合、ストリーミング パターンは役に立ちません。
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);
}
}
注釈
作成するデリゲートのインスタンスは、CreateStreamedFileAsync メソッドまたは ReplaceWithStreamedFileAsync メソッドによって返された StorageFile のデータ ストリームを生成します。
CreateStreamedFileAsync メソッドまたは ReplaceWithStreamedFileAsync メソッドを StreamedFileDataRequestedHandler のインスタンスと共に使用する場合は、ファイルの作成時にファイルの内容を書き込む代わりに、必要に応じてファイルのデータを提供できます。 つまり、ファイルが最初にアクセスされるまで、ファイルのデータを生成するためのコストのかかる操作を延期できます。