본문 바로가기
SoftWare/Visual C#

C# 대리자 Invoke

by 학수씨 2009. 3. 6.

1. Thread or Event 함수에서 Timer실행시키기
1
2
MethodInvoker tmr = new MethodInvoker(TimerFaceTalk.Start);
this.Invoke(tmr);
MethodInvoker 로 타이머를 돌린다..
MethodInvoker는 Method에 대한 대리자클래스 이다..


2. Thread or Event 함수에서 다른 Event함수 실행시키기
이럴경우에는 직접 함수자체를 대리자로 선언해버려 함수를 실행시켜야한다..
1
2
3
4
5
6
7
public void RCCRetry_Connect()
{
    RobotDLL.RetryRCCInitSocketDLLFnc();
}

MethodInvoker tmr = new MethodInvoker(frm1.RCCRetry_Connect);
frm1.Invoke(tmr);
위 소스는 함수자체를 Method로 인식시켜 대리자로 선언시키는 방법이다.

3. 외부 클래스에서 Form1 Text컨트롤 건들이는 방법
1
2
3
4
5
6
7
8
9
10
11
12
delegate void SetTextCallback(string OTime);

private void frm1TextOTime(string OTime)
{
    if (frm1.txtOTime.InvokeRequired)
    {
        SetTextCallback d = new SetTextCallback(frm1TextOTime);
        frm1.Invoke(d, new object[] { OTime });
    }
    else
        frm1.txtOTime.Text = OTime;            
}
위함수는 콜백을 이용해서.. 대리자를 호출하는 방법으로 약간 고급틱 하다..

'SoftWare > Visual C#' 카테고리의 다른 글

C# Process Class  (0) 2009.03.06
C# 윈도우메세지 WM_USER MESSAGE 받기  (0) 2009.03.06
C# 의 Handle hWND  (0) 2009.03.06
C# 형변환  (0) 2009.03.06
C# ControlArray 사용하기  (0) 2009.03.06

댓글