我想在我的Web应用程序的所有用户之间共享一个Queue数据结构,而不使用任何数据库。我希望这些数据始终可用,并且所有用户之间都是线程安全的。缓存是一个好主意吗?我尝试通过调用:
来使用System.Web.CachingQueue<int> users= new Queue<int>();
Context.Cache.Insert("users", users, null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration);
在我的Global.axax文件中,但是当我在.cs文件中调用缓存时:
( (Queue<int>) Cache["users"] ).Enqueue( newUser);
我收到以下错误:
'System.Web.Caching.Cache' is a 'type' but is used like a 'variable'
我是否正确使用缓存?
谢谢!
答案 0 :(得分:4)
Controller类没有像ASP.NET Web窗体页面类那样的Cache属性。您需要从HttpContext属性中引用它。
((Queue<int>)HttpContext.Cache["users"]).Enqueue( newUser );