C# 장비의 상태 및 로직 관리 질문

안녕하세요. 현재 FA쪽 일을 하고 있는 4년 차 입니다.
주로 자동화 장비 및 영상 처리 일을 하고 있고…
C++ MFC 를 사용하여 프로그램을 개발하다가 주도적으로 프로젝트를 진행할 수 있게 되어 다음 프로젝트 부터는 시험 삼아 C# Winform 으로 개발하려고 생각하고 있습니다.

모델과 뷰는 MVC 또는 MVP 패턴으로 구현하면 될 것 같아 크게 염려하고 있지 않은데…
기존 C++ MFC에서는 장비의 상태나 로직을 처리할 때 while과 swich-case를 이용한 상태 관리를 주로 사용하여 개발 해왔으나
C#에서는 어떻게 주로 관리하는지 여쭙고 싶습니다.

개인적인 생각으로는 총 관리하는 클래스 내부에
큰 틀의 동작을 하는 클래스들을 (TrayLoader, Picker…등?) 공통된 인터페이스로 묶고
해당 클래스들 각각은 내부에서 별도의 스레드를 가지며 각자의 상태를 관리 하게끔…?
각 상태를 담당하는 클래스는 총 관리하는 클래스를 통하여 통신을 하고…

일단 떠오르는 건 위와 같이 구현을 할 까 생각하는데…
현직에 계신 선배님들은 어떻게 구현을 하고 운용을 하시는지 궁금합니다…

1 Like

async Task로 관리하면 로직이 굉장히 단순해집니다. *좋습니다.
상태머신 및 상태전이는 SEMI Spec 참고하시면 좋습니다.
사실상 기능이나 각 모듈의 행위에 대한 추상화가 잘되어있으면 실질적인 개발자체는 크게 난이도가 높지 않습니다.

2 Likes