2011-08-16 10 views

답변

4

Action은 찾고있는 서명이 있습니다. 그러나 Runnable과 같은 의미는 아닙니다. Runnable은 일반적으로 run() 메서드가 Thread에서 실행되도록 지정하고 Action은 아무런 표시도하지 않음을 나타냅니다. 그 때문에 당신은 ThreadStart을 원할 것입니다.이 서명은 같은 서명을 가지고 있습니다.

매개 변수없이 대리자 만 필요한 경우 Action이 원하는 것입니다. 스레드를 다루고 있고 시작 메소드를 나타낼 필요가 있다면 ThreadStart을 사용하십시오.

1

아니요. C#은 Java와는 다르게 스레드를 처리합니다. Java에서는, Runnable 인터페이스는 Thread를 서브 클래스 화하는 대신에, 새로운 Thread 객체를 생성 해, Runnable를 생성자에게 건네주지 않으면 안됩니다.

오히려 Thread 클래스를 서브 클래스보다 더, 당신은 단순히 (이것은 당신이 일을 할 수있는 기능입니다) 새로운 System.Threading.Thread 객체를 만들고 그것을 ThreadStart 대리자를 전달합니다. ThreadStart는 Java Runnable과 동일한 C#입니다.

그러나 Action 대의원은 사용자가 말하는 매개 변수가 void입니다.