0

我正在使用以下代码在隔离存储中创建文件

mystorage = IsolatedStorageFile.GetUserStoreForApplication();
if (mystorage.FileExists(scanName))
{
    mystorage.DeleteFile(scanName);
}
WriteableBitmap wb = new WriteableBitmap(canImage, null);
using (MemoryStream stream = new MemoryStream())
{
    wb.SaveJpeg(stream, (int)canImage.Width, (int)canImage.Height, 0, 100);
    using (IsolatedStorageFileStream local = new IsolatedStorageFileStream(scanName, FileMode.Create, mystorage))
    {
        local.Write(stream.GetBuffer(), 0, stream.GetBuffer().Length);
    }
}
if (MessageBox.Show("Scan updated successfully") == MessageBoxResult.OK)
{
    App.isTransformRequest = false;
    NavigationService.Navigate(new Uri("/View/EditDocument.xaml?paramList=" + App.currentName, UriKind.RelativeOrAbsolute));
}

此代码工作正常。但是我想检测文件是否完全创建的天气,之后我只想显示成功消息。我目前工作的方式有时会在文件完全创建之前显示成功消息,我希望仅在文件完全创建后才显示消息,即流被完全写入。

4

1 回答 1

0

使用(msdn)BeginWrite的方法,您可以注册 ActionCallback 以继续使用 UI 中的重定向选项。IsolatedStorageFileStream

请注意,如果您的回调在 UI-Thread 中显示 MessageBox,您必须使用Dispatcher (msdn)同步 ThreadContext

于 2013-11-07T10:38:36.060 回答