在ASP.NET MVC中创建全局对象的最佳位置

Tom*_*mas 5 asp.net asp.net-mvc-3

我想在我的ASP.NET MVC应用程序中实现ConcurrentQueue对象.ConcurrentQueue对象将在会话之间共享,应创建一次.在ASP.NET MVC中创建ConcurrentQueue的最佳位置是什么?

Chr*_*s S 8

您选择的任何类都可以包含它的实例,但是将它耦合到负责队列所用功能的类中是最有意义的.

例如Cache类:

public class MyCache
{
     public static ConcurrentQueue Queue { get; private set; }

     static MyCache()
     {
          Queue = new ConcurrentQueue();
     }
}
Run Code Online (Sandbox Code Playgroud)

这将在第一次使用MyCache类时初始化它.如果你想要更精细的颗粒控制,你可以创建一个InitializeGlobal.asax.cs文件在app start上调用的方法.