2012-02-29 2 views

답변

7

모든 클래스는 인스턴스를 보유 할 수 있지만 대기열이 사용되는 기능을 담당하는 클래스 내에서 결합하는 것이 가장 적합합니다.

예를 들어 캐시 클래스 :

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

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

이것은 그것을 MyCache 클래스가 처음 사용할 때 초기화됩니다. 미세한 입자 제어가 필요한 경우 Global.asax.cs 파일에서 응용 프로그램 시작시 호출하는 Initialize 메서드를 만들 수 있습니다.

2

파일 Global.asax.cs, protected void Application_Start() 과부하

또 다른 접근법은 싱글 톤/정적 클래스를 만드는 것입니다. 당신은 할 수

+0

어디에서 ConcurrentQueue 변수를 선언해야 나중에 코드에서 액세스 할 수 있습니까? – Tomas

+0

'Global.asax.cs '접근법 - Global.asax.cs에서 직접적으로, 예를 들어 Application_start 위의 한 줄은 public static ConcurrentQueue Queue {get; 개인 집합; }'그리고 Application_Start에서 초기화하십시오. 싱글 톤 정적 클래스의 경우 @ChrisS answer를 참조하십시오. –

3

:이 일부 코드가 실제로 유형

  • 의 Global.asax를 사용하는 경우에만 생성 그래서

    1. 는, 정적 생성자를 만듭니다.
    2. WebActivator - Global.asax 파일을 오염시키지 않고 다른 어셈블리에서 큐를 만들 수 있습니다.
  • 관련 문제