JSで記述されたWindows8Metroアプリケーションで、ファイルを開き、ストリームを取得し、「promise-.then」パターンを使用していくつかの画像データを書き込みます。正常に動作します。BitmapEncoderを使用してストリームをファイルにフラッシュした後、ストリームが開いたままであることを除いて、ファイルはファイルシステムに正常に保存されます。すなわち; アプリケーションを強制終了するまでファイルにアクセスできませんが、「stream」変数は参照できる範囲外であるため、close()できません。使用できるC#usingステートメントに匹敵するものはありますか?
...then(function (file) {
return file.openAsync(Windows.Storage.FileAccessMode.readWrite);
})
.then(function (stream) {
//Create imageencoder object
return Imaging.BitmapEncoder.createAsync(Imaging.BitmapEncoder.pngEncoderId, stream);
})
.then(function (encoder) {
//Set the pixel data in the encoder ('canvasImage.data' is an existing image stream)
encoder.setPixelData(Imaging.BitmapPixelFormat.rgba8, Imaging.BitmapAlphaMode.straight, canvasImage.width, canvasImage.height, 96, 96, canvasImage.data);
//Go do the encoding
return encoder.flushAsync();
//file saved successfully,
//but stream is still open and the stream variable is out of scope.
};