它appears此異常可能是由多個線程(其中包括HTTP請求的完成處理程序)訪問IsolatedStorageSettings.ApplicationSettings
的結果。
我假設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
}
或者,你可以通過使用代理隱藏鎖:
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
});
這是否發生在仿真器和/或實際設備中?設備上的 – 2012-02-01 15:11:10
。只在調試 – Qirat 2012-02-01 16:53:10
,它在模擬器上工作? – 2012-02-01 17:38:47