我有一个PeriodicTask,它为我的手机应用更新一个磁贴并将信息保存到持久存储。wp8 PeriodicTask和持久存储
这工作得很好,直到列表到达一个大小为11个或12
,我保存的对象周围是约5成员POCO对象。 我基本上是获取数据,保存数据并创建图块(未显示)。
所以
//get data
var newData = GetPocoFromWeb();
base.Add(newData);
基类
public abstract class DataFetcher<T> where T : IDataCarrier, new()
{
protected readonly IPersist<List<T>> Persist;
protected DataFetcher(IPersist<List<T>> persist)
{
Persist = persist;
}
protected void Add(T item)
{
var items = Persist.Load();
items.Add(item);
Persist.Save(items);
}
}
的坚持类
public class Persist<T> : IPersist<T>
{
private readonly string _identifier;
public Persist(string identifier)
{
_identifier = identifier;
}
public virtual T Load()
{
if (IsolatedStorageSettings.ApplicationSettings.Contains(_identifier))
{
return (T)IsolatedStorageSettings.ApplicationSettings[_identifier];
}
return default(T);
}
public virtual void Save(T item)
{
IsolatedStorageSettings.ApplicationSettings[_identifier] = item;
IsolatedStorageSettings.ApplicationSettings.Save();
}
}
难道我也许使用错误的存储? 列表中的11项并不是那么多。
更新: 当我加载列表并添加到它使用的应用程序(不通过periodicTask)我可以轻松地保存几百个项目。
在仿真器中运行时,我不会收到任何错误,它只会一直运行,直到列表中有大约11个项目,然后停止工作。
谢谢。我怀疑我可能会超出内存限制,也许我一直在讨论这个错误。 我读了isolatedstoragesettings,看来也许我可能会更好地使用本地数据库。 我会测试今晚和结果更新 –
这是记忆,似乎我一定是在边缘由于我如何创建我的瓷砖(controltoimage)和孤立的存储推动它的边缘...有趣的我尽管如此。我重写了图像创作,这让我有更多的记忆可以玩。 –