목록Arbiter (3)
CHOU
이전에 RunForm 객체를 등록 시키는 방법이 아니라 WinFormsServicePort에서 제공하는 특정한 메소드들을 사용하여, WinForm 안에 등록되어 있는 메소드들을 호출하는 방법을 알아보려 합니다. 오늘도 역시 MSRDS 네이버 카페에 김영준 수석님께서 올려주신 예제를 가지고 알아보겠습니다. 이 번 예제는 별도로 추가한 폼의 색상을 변경하는 메소드와 두 개으 숫자값을 더해서 결과를 표시하는 메소드를 별도로 추가한 폼에 생성해 놓은 후, 기존 폼에서 이 메소드들을 호출하는 과정을 알아보겠습니다. 1. 먼저, 프로젝트 참조에 이전과 같이 Ccr.Adapters.Winforms.dll을 기존 Microsoft.Ccr.Core.dll 파일과 같이 추가 합니다. 그림1. 레퍼런스 추가 화면 그림2. ..
Arbiter는 CCR에서 가장 중요한 기능을 담당하는데 크게 3가지의 기능을 제공합니다. 1) 다른 프로시저(핸들러) 형태로 정의되어 있는 부분을 ITask에 매핑시켜서 해당 프로시저가 수행할 수 있도록 합니다. 2) Coordination 기능으로서 특정한 메세지를 해당 핸들러에 매핑시켜서, 해당 메세지가 수신되면 해당 헨들러에 전달하여 해당 핸들러가 수행되도록 합니다. 3) 동시성을 제어하는 기능으로, 특정한 시점에 동시 실행을 허용하던가, 아니면 배타적으로 오직 하나의 작업만 수행다던가 하는 선택 작업을 수행할 수 있습니다. 오늘은 핸들러 형태로 정의되어 있는 프로시저 부분을 ITask로 변환시켜서 해당 핸들러 안에 구현되어 있는 작업들을 실행시키는 예제를 수행하면서 위에 1번의 기능에 대해 알아..
Arbiter.Receive는 특정 포트에 지정된 메세지가 도착하면 해당 핸들러가 실행되도록 하는 기능을 수행 합니다. 즉 특정 메세지를 myStatus라는 클래스로 정의하였을 때, 이 메세지를 수신하는 포트를 myStatusPort라고 정의 합니다. 이 때 myHandler라는 이름의 핸들러의 연결을 아래와 같이 정의할 수 있습니다. ITask myTask = Arbiter.Receive(false, myStatusPort, myHandler); Arbiter.Receive는 결과를 ITask 형식으로 리턴합니다. http://cafe.naver.com/msrskorea 에 김영준 수석님께서 올려주신 예제를 통해 좀 더 알아보겠습니다. 1. 앞선 예제와 마찬가지로 C# 프로젝트를 오픈해서 Microso..