시작하기
C# Invoke에 관해 적는다.
설명
자세한 내용은 마이크로소프트를 참고하자.
1 | public object Invoke (Delegate method); | cs |
컨트롤의 내부 창 핸들이 있는 스레드에서 지정된 대리자를 실행한다.
대리자에 실행될 메서드가 있다면 메서드가 실행, 아니면 null 반환.
호출되는 대리자의 반환 값은 Object 이며 재포장 되어 전달된다.(되는거 같다..)
만약 대리자에 반환 값이 없으면 null 이다.
1 | public object Invoke (Delegate method, params object[] args); | cs |
args 는 매개 변수에 있는 매개 변수의 수 및 형식과 동일한 매개 변수를 갖는 메서드의 대리자이다.
1 2 3 4 5 6 7 8 9 10 | public delegate void AddListItem(String myString); public AddListItem myDelegate; myDelegate = new AddListItem(AddListItemMethod); public class MyThreadClass MyFormControl myFormControl1; myFormControl1.Invoke(myFormControl1.myDelegate, new Object[] {myString}); | cs |
대리자는 C 또는 C++의 함수 포인터와 비슷하다. 대리자 개체는 참조된 함수를 호출 하는 코드 다음에 전달 할 수 있다. C 또는 C++ 함수 포인터와 달리 대리자는 객체지향이고 형식이 더욱 안전하다.
Unity3D에서 Invoke를 활용하는 법은 이 분의 글에 잘 설명이 되있다. Unity3D에서도 비슷하게 작동한다.
'IT_플밍' 카테고리의 다른 글
[Unity3D] 싱글톤(Singleton) 패턴 사용하기 (0) | 2018.09.18 |
---|---|
비공식 Google Camera HDR+ 설치하기 (3) | 2018.08.07 |
Cat5 랜선은 기가비트(500mb) 를 지원하지 않는다. (0) | 2017.12.21 |
[이산수학] 명제 (0) | 2017.12.18 |
[UE4] 언리얼 엔진4를 이용하여 360 ° 동영상 만드는 법 (0) | 2017.12.12 |