我有一个ASP.NET应用程序,它实现了自定义的内存缓存。我正在使用它而不是ASP.NET的缓存机制,因为我需要一种更复杂的方法来处理从缓存中删除的内容。此自定义缓存的一部分是一个单独的线程,偶尔会搜索从缓存中丢失的数据。
我需要做的是发信号通知此缓存维护线程在ASP.NET应用程序“退出”时停止。我想这基本上等于网站在IIS中停止的时候。
我可以使用预先存在的事件来执行此操作吗?感谢。
答案 0 :(得分:2)
您可以创建Global.asax文件并覆盖Application_End方法。
http://www.csharphelp.com/2006/06/setting-up-global-objects-with-the-global-asax-file/
答案 1 :(得分:1)
从您拥有此自定义内存缓存的那一刻起,我想您的asp.net应用程序会以多种方式与此缓存进行通信。
那么为什么不在这个cashe上创造一个全局价值,并在global.asax上做出类似的东西
void Application_Start(object sender, EventArgs e)
{
GlobalCacheUsed ++;
}
void Application_End(object sender, EventArgs e)
{
GlobalCacheUsed --;
}
并且您的线程只检查 GlobalCacheUsed 值
我可以问您使用与您的应用进行通信的方式吗?我已经和你做了类似的事情,我有一个类,我使用数据库表和其他使用内存的缓存。我清除缓存的触发器是用户事件或定时器。
希望这对你有所帮助。