2014-04-26 1 views
2

스레드 클래스는 4 가지 constructores 가지고델리게이트없이 스레드 만들기 -이 기능은 왜 작동합니까?

스레드 (ParameterizedThreadStart)

스레드 (ThreadStart)

스레드 (ParameterizedThreadStart, INT32)

스레드 (ThreadStart, INT32)를

하지만 왜이 다음 코드가 작동합니까?

class Program { 
    static void Main(string[] args) { 

     Thread t = new Thread(count2); 
     t.Start(); 
     count1(); 
     Console.ReadLine(); 
    } 

    public static void count1() { 
     for (int i = 0; i < 10; i++) { 
      Console.WriteLine("count1: " + i); 
     } 
    } 

    public static void count2() { 
     for (int i = 0; i < 10; i++) { 
      Console.WriteLine("count2: " + i); 
     } 
    } 
} 

Thread 생성자에 ParameterizedThreadStart-delegate 또는 ThreadStart-delegate를 전달하지 않습니다. 정규 count2 메서드 만 전달합니다. 그러나 이것이 왜 효과가 있나?

+0

추가 사항 : Visual Studio의 스 니펫은 2012 버전까지 이벤트에 대한 대리인 인스턴스를 만드는 코드를 추가하는 데 사용됩니다. 많은 사람들이이 기능이 있기 때문에 존재하지 않았다. – Vercas

답변

2

왜냐하면 컴파일러가 자동으로 대리자 구성을 추가하고 대리인 유형을 유추하기 때문입니다.

This page 정확한 기능을 문서화합니다.

관련 문제