在程序中数据库中经常需要用到的数据 保存在了 Dictionary<string, S_REGISTRYINFO>中 value 是一个实体,相当于一个缓存;
并在Global.asax中的Application_Start 中使用线程定时器来定时更新Dictionary中的数据。
现在的问题是:当网站过10几分钟没人访问线程就不会再运行,我想可能是IIS应用程序池自动回收的问题,当再次有请求访问网站时,Dictionary中的数据全没有了,如何解决数据丢失的问题?
private System.Threading.Timer time;
void Application_Start(object sender, EventArgs e) {
//在应用程序启动时运行的代码
int minute = Convert.ToInt32(ConfigurationManager.AppSettings["Minute"]) * 60 * 1000;
time = new System.Threading.Timer(OnTimedEvent, 3, 0, minute);
}
void OnTimedEvent(object obj){。。。}
那你可以找一个表或者是文件来序列化保存一下
序列化到文件或者是保存到表里面吧,没有太好的办法