2009-02-27 3 views
5

이 코드를 찾았습니다..net에서 Invoke()를 어떻게 사용합니까?

this.Invoke(new EventHandler(EventGetSum)); 

이 코드는 다음과 같이 쓰지 않습니다 :

EventGetSum(); 

이 코드의 용도는 무엇입니까?

+0

는, 어쩌면 당신이 뭔가 더 설명 – grapefrukt

+0

확인이 질문에 http://stackoverflow.com/questions/571706/shortest-way-to-write-a-thread-safe-access로 변경 고려해야 -modod-to-a-windows-forms-control/571749 # 571749 – alex2k8

답변

13

EventGetSum()이라고 쓰면 즉시 으로,으로 EventGetSum 메서드가 호출됩니다.

new EventHandler(EventGetSum)을 작성하면 호출 될 때 EventGetSum을 차례로 호출하는 대리인을 만듭니다.

Control.Invoke을 호출하면 제어를 담당하는 UI 스레드에서 제공된 대리인을 호출합니다. 이것은 임의의 스레드에서 UI 요소에 액세스하면 안되기 때문에 필요합니다.

5

this이 속하는 스레드에서 EventGetSum 메서드를 실행합니다.

4

이것은 일반적으로 크로스 스레드 UI 호출을 처리 할 때 사용됩니다.

ISynchronizeInvoke에 대한 MSDN 설명서를 참조하십시오. 꽤 나쁜 제목의