2012-02-29 36 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文件,並且您可以在不同的程序集中創建隊列。