2010. 3. 27. 10:18

동기 Delegate

1. 우선 Delegate 함수를 만들어준다.
예) delegate void DeleStu(); //여기서 인자를 넣어주면 나중에 Invoke를 호출할때 인자가 추가되서 들어간다.

2. Delegate 객체를 만들어준다.
예) DeleStu sDel = new DeleStu(s.Study);  //만들어주면서 안에 Delegate를 이용해 호출할 함수를 인자로 넣어준다.

3. Delegate를 실행한다.
예) sDel.Invoke();  //만약 처음에 생성해줄대 카운트를 인자로넣었다면! Invoke(3); 이렇게 하면 함수를 3번호출하게된다.


비동기 Delegate

1, 2 같다.

3. Delegate를 비동기로 실행한다.
예) TDel.BeginInvoke(EndTDel, TDel); //첫번째는 호출할 콜백함수 , 두번째는 비동기할 객체
//만약 1번에서 인자를 넣어 주었다면 EndTDel 앞에 인자가 더 생긴다.

TDel.BeginInvoke(3, EndTDel, TDel);  // 이렇게 호출된다면 Tdel를 호출하면 3번을 실행하게된다.

        void EndTDel(IAsyncResult iar) //인자로 비동기할 객체가 들어가는것같다.
        {
            DeleTeacher TDel = iar.AsyncState as DeleTeacher;
            if (TDel != null)
            TDel();
          
            TDel.EndInvoke(iar);
        }

'.NET > C#' 카테고리의 다른 글

Sealed  (0) 2010.03.29
Sort메소드  (0) 2010.03.28
직렬화  (0) 2010.03.27
AS, IS  (0) 2010.03.25
Catch(Exception)  (0) 2010.03.25
Posted by 아몰라