CHOU

[MSRDS] CCR에서 가장 중요한 기능인 Arbiter 알아보기 본문

Tech/Microsoft Products

[MSRDS] CCR에서 가장 중요한 기능인 Arbiter 알아보기

chobabo 2009. 3. 24. 13:13
Arbiter는 CCR에서 가장 중요한 기능을 담당하는데 크게 3가지의 기능을 제공합니다.

1)  다른 프로시저(핸들러) 형태로 정의되어 있는 부분을 ITask에 매핑시켜서 해당 프로시저가 수행할 수 있도록 합니다.

2) Coordination 기능으로서 특정한 메세지를 해당 핸들러에 매핑시켜서, 해당 메세지가 수신되면 해당 헨들러에 전달하여 해당 핸들러가 수행되도록 합니다.

3) 동시성을 제어하는 기능으로, 특정한 시점에 동시 실행을 허용하던가, 아니면 배타적으로 오직 하나의 작업만 수행다던가 하는 선택 작업을 수행할 수 있습니다.

오늘은 핸들러 형태로 정의되어 있는 프로시저 부분을 ITask로 변환시켜서 해당 핸들러 안에 구현되어 있는 작업들을 실행시키는 예제를 수행하면서 위에 1번의 기능에 대해 알아보겠습니다.

이번에도 역시 http://cafe.naver.com/msrskorea 에서 김영준 수석님께서 올려주신 예제로 알아보도록 하겠습니다.

1. C# 프로젝트를 생성합니다.


그림1. 프로젝트 생성 화면



2. Microsoft.Ccr.Core 를 레퍼런스에 추가해 주고 코드 상단에 using을 이용하여 정의 합니다.


그림2-1. 레퍼런스 추가 화면


그림2-2. 코드 추가 화면



3. 폼에 버튼과 리스트박스를 추가해 줍니다.


그림3. 폼 생성화면



4. Button 이벤트 부분에 다음과 같은 코드를 정의해 줍니다.

그림4. 코드 추가 화면



5. 위의 예제가 실행된 결과 입니다.


그림5. 결과 화면



 위의 코드에서 Arbiter.FromHandler() 메소드를 이용하여, 해당 핸들러를 ITask로 변환시키는 모습을 볼 수 있습니다. myHandler() 메소드에는 현재 시간을 리스트 박스에 추가해 주는 기능을 정의하는 모습을 볼 수 있습니다. 코드를 이해 하시는데 별 어려움이 없을 거라 생각합니다.


아래 영상은 프로젝트를 생성하고 결과가 출력되는 영상입니다. 혹시 잘 안되시는 분은 참고 해 주시기 바랍니다.


영상1. 결과 출력 영상



참고자료

1. http://cafe.naver.com/msrskorea

2. 예제 코드 파일