gpt4 book ai didi

c# - 不允许对 IsolatedStorageFileStream 进行操作。错误

转载 作者:太空狗 更新时间:2023-10-29 18:16:43 27 4
gpt4 key购买 nike

我对隔离存储有疑问。

这是我的代码:

List<Notes> data = new List<Notes>();

using (IsolatedStorageFile isoStore =
IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isoStream =
isoStore.OpenFile("Notes.xml", FileMode.OpenOrCreate))
{
XmlSerializer serializer = new XmlSerializer(typeof(List<Notes>));
data = (List<Notes>)serializer.Deserialize(isoStream);
}
}

data.Add(new Notes() { Note = "hai", DT = "Friday" });

return data;

错误:在 IsolatedStorageFileStream 上不允许操作。在

using (IsolatedStorageFileStream isoStream = 
isoStore.OpenFile("Notes.xml", FileMode.OpenOrCreate))

最佳答案

这通常发生在您多次同时执行该代码块时。您最终锁定了文件。因此,您必须确保在构造函数中包含 FileAccess 和 FileShare 模式,如下所示:

using (var isoStream = new IsolatedStorageFileStream("Notes.xml", FileMode.Open, FileAccess.Read, FileShare.Read, isolatedStorage)
{
//...
}

如果你想在其他人正在读取的同时写入文件,那么你需要像这样同步锁定:

private readonly object _readLock = new object();

lock(_readLock)
{
using (var isoStream = new IsolatedStorageFileStream("Notes.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None, isolatedStorage)
{
//...
}
}

关于c# - 不允许对 IsolatedStorageFileStream 进行操作。错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8415979/

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