gpt4 book ai didi

c# - 如何释放/处置 Windows.Data.PdfDocument

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:52 24 4
gpt4 key购买 nike

以下代码将在 Windows 10 1709 上抛出 UnauthorizedAccessException。在以前版本的 Windows 10(或 8.1)上,不会抛出异常。如果带有 LoadFromFileAsync 的行被注释掉,则不会抛出异常。

private async void Button_Click(object sender, RoutedEventArgs e)
{
var source = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"Assets\example.pdf");

var tempFile = await source.CopyAsync(ApplicationData.Current.TemporaryFolder, "my.pdf", NameCollisionOption.ReplaceExisting);

var pdf = await PdfDocument.LoadFromFileAsync(tempFile);

await tempFile.DeleteAsync(StorageDeleteOption.PermanentDelete);
}

由于 PdfDocument 没有提供释放/释放明显声明的资源的方法,这似乎是框架中的一个错误。我能想到的唯一解决方法是通过 LoadFromStreamAsync 传递数据以防止文件被锁定。

那么一个PdfDocument如何在Windows 10 1709上正常发布呢?

enter image description here

尝试删除之前的附加屏幕截图:

enter image description here

最佳答案

最后采用了解决方法来防止 PdfDocument 锁定文件:

using (var stream = await tempFile.OpenReadAsync())
{
var pdf = await PdfDocument.LoadFromStreamAsync(stream);
// do something with the document
}

await tempFile.DeleteAsync(StorageDeleteOption.PermanentDelete);

关于c# - 如何释放/处置 Windows.Data.PdfDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48380522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com