2012-02-29 98 views

回答

7

您选择的任何类都可以包含它的一个实例,但是将它连接到一个负责任何队列功能的类中是最有意义的。

例如一个Cache类:

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

    static MyCache() 
    { 
      Queue = new ConcurrentQueue(); 
    } 
} 

这将初始化它第一次MyCache类被使用。如果您想要更细粒度的控制,您可以创建一个Initialize方法,让您的Global.asax.cs文件在应用程序启动时调用。

2

文件Global.asax.cs,protected void Application_Start()方法过载。

另一种方法是创建一个单例/静态类。

+0

我应该在哪里声明一个ConcurrentQueue变量来稍后从代码中访问它? – Tomas 2012-02-29 14:01:47

+0

对于'Global.asax.cs'方法 - 直接在Global.asax.cs中,例如在Application_start之上的一行,执行'public static ConcurrentQueue Queue {get;私人设置; }'并在Application_Start中初始化它。对于单例静态类,请参阅@ChrisS答案 – 2012-02-29 14:15:18

3

,你可以:

  1. 在静态构造函数来创建它,所以它的创建,只有当一些代码实际使用的类型
  2. Global.asax中。
  3. 使用WebActivator - 您不会污染Global.asax文件,并且您可以在不同的程序集中创建队列。