2010-05-10 2 views
1

저는 응용 프로그램 자동화 서비스를 제공하는 Windows Forms 시스템 (모든 사람에게 중요 할 경우 C#으로 작성)을 구축하고 있습니다. 이 응용 프로그램은 컴퓨터에 익숙하지 않은 사용자를 대상으로하므로 마법사 UI를 사용하여 사용자를 단순화하기로 결정했습니다. 뷰와 뷰 엔진 (마법사를 만들 것임)을 자동화 엔진에 연결하는 것을 피하고 싶습니다.SoC를 염두에두고 마법사 기반 시스템을 설계하려면 어떻게해야합니까?

내가 겪고있는 문제는 그 일을하는 동안 별도의 스레드에서 실행되는 자동화 엔진이 상태 정보를 다시 사용자에게보고하고 사용자의 취소 또는 일시 중지 이벤트를 수신해야한다는 것입니다. . 뷰 엔진이나 자동화 엔진이 서로 의존하기를 원하지 않기 때문에이 정보 도관을 제공하는 방법을 파악하는 데 어려움을 겪고 있습니다.

이 문제에 대한 통찰력이 있으면 크게 감사하겠습니다. 나는이 시점에서 두어 주 동안 내 뇌를 부러 뜨 렸고, 나는 포기하고 모든 것을 함께 묶고 싶지 않습니다.

누군가가 아이디어를 제안하는 데 도움이되는 추가 세부 정보가 필요하면 알려 주시면 기꺼이 제공해 드리겠습니다.

답변

1

둘 사이의 통신 플랫폼 역할을하는 중간에 스레드 안전 오브젝트가없는 이유는 무엇입니까? 이 클래스에는 필요한 정보를 입력하고 추출하는 방법을 제공하는 속성 및 메서드뿐만 아니라 자체 이벤트가 있습니다. 이 단계를 더 진행할 수도 있습니다. 마법사와 자동화 플랫폼이 동시에 실행되는 경우 고유하게 식별 할 수있는 경우 마법사 ID의 해시를 플랫폼 ID로 설정하면 개체가 여러 쌍의 통신을 처리 할 수 ​​있습니다. 시각. 이렇게하면 모든 것이 스레드로부터 안전하고 수행중인 통신이 마법사 - 플랫폼 쌍과 관련된 정보만을 사용한다는 점에 매우주의해야합니다.

나는 이것이 넓은 대답이라는 것을 알고 있지만, 다른 접근법보다 먼저이 접근법을 살펴볼 것이다. 원하는 관심사를 제시 할뿐만 아니라 디자인 할 때 다용도로 사용할 수있는 커뮤니케이션 플랫폼을 제공합니다.

마지막으로 조언이 필요하지 않을 수도 있습니다. 통신 클래스가 순환 참조 문제로 인해 발생할 수있는 일에 의존하지 않도록해야합니다. 나는 클래스를 합리적으로 가능한 한 불가지론 자로 만들 것이고, 필요한 모든 객체는 마법사/플랫폼이 필요로하는 객체와 분리되어야한다.

희망이 도움이됩니다.

+0

필자는 뷰 엔진 (뷰)과 통신 할 수있는 메시징 파이프 라인을 만들었습니다. 감사합니다.) –

+0

알려 주셔서 감사합니다. 내 제안이 당신을 위해 잘되어있어서 기쁩니다. – joshlrogers

관련 문제