gpt4 book ai didi

silverlight - 当我尝试获取值(value)时,IsolatedStorageSettings 会抛出一个 IsolatedStorageFileStream

转载 作者:行者123 更新时间:2023-12-04 05:59:30 26 4
gpt4 key购买 nike

我正在尝试获取使用 isolatedStoragesettings 保存的 bool 值,如下所示:

IsolatedStorageSettings.ApplicationSettings.TryGetValue(KEYSTRING, out myBoolValue);

但我只有在调试时才会得到这个异常
不允许对 IsolatedStorageFileStream 进行操作。

当我使用(不带调试运行)Ctrl+F5 时,它工作得很好。知道这里有什么问题吗?

最佳答案

appears这个异常可能是访问 IsolatedStorageSettings.ApplicationSettings 的结果来自多个线程(包括 HTTP 请求的完成处理程序)。

我假设 IsolatedStorageSettings保持共享 Stream在内部,因此多个阅读器会导致它进入无效状态。

解决方案只是序列化对设置的访问。任何时候你需要访问你的设置,让它发生在 UI 线程上(通过 Dispatcher.BeginInvoke )或使用锁:

public static class ApplicationSettingsHelper
{
private static object syncLock = new object();

public static object SyncLock { get { return syncLock; } }
}

// Later

lock(ApplicationSettingsHelper.SyncLock)
{
// Use IsolatedStorageSettings.ApplicationSettings
}

或者,您可以使用委托(delegate)隐藏锁:
public static class ApplicationSettingsHelper
{
private static object syncLock = new object();

public void AccessSettingsSafely(Action<IsolatedStorageSettings> action)
{
lock(syncLock)
{
action(IsolatedStorageSettings.ApplicationSettings);
}
}
}

// Later
ApplicationSettingsHelper.AccessSettingsSafely(settings =>
{
// Access any settings you want here
});

关于silverlight - 当我尝试获取值(value)时,IsolatedStorageSettings 会抛出一个 IsolatedStorageFileStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9096560/

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