2012-07-02 3 views
1

dotTrace 프로파일 러를 사용하는 동안 NamespaceName.ClassName.ctor>b__11 으로 전화를 많이받는 중입니다. (내 응용 프로그램에 Equatec 프로파일 러를 사용했을 때 신비한 기능이 NamespaceName.ClassName.<ctor>b__11 인 비슷한 결과가 나타납니다). 먼저 ClassName의 생성자라고 가정했지만 ClassName 생성자의 중단 점은 한 번만 공격되었습니다. 이 함수는 자동 생성 함수라고 가정하고 호출 된 위치를 찾는 방법은 무엇입니까? 생성자가 한 번만 호출되면 생성자와 어떤 관계가 있습니까? ClassName?ClassName.ctor> b__11은 dotTrace Profiler에서 무엇을 의미합니까?

답변

3

아마도 생성자에서 선언 된 람다 일 겁니다. => 구문을 사용하여 생성자에서 이벤트를 구독 했습니까? 아니면 자주 호출되는 다른 이벤트를 구독 했습니까?

람다를 사용할 때 C# 컴파일러는이를 개인 메서드로 변환하고 해당 메서드에 대한 대리자를 사용합니다. (가변 캡처를하는 경우 다른 멋진 트릭이 있습니다.)

Reflector의 다른 클래스를 보면, C# 컴파일러는 메소드로 바꿀 때 각 람다에 숫자를 매기는 것처럼 보입니다. , <methodName>b__<number>, 각 번호는 번호가 매겨집니다.