locke 님이 쓰신 글 :
: 제가 전문가는 아니지만.. 장비쪽에서 들어오는 신호를 수신해서 상태에 맞게 무엇인가 발생시킬 수 있는 dispatcher 루틴은 어딘가 하나 있어야 할듯 싶습니다. 그걸 exe를 따로 만들어 하시든지 같은 exe안에서 하시든지는 개인의 재량에 따라 처리해야할 문제 같구요..
:
: 지금 쓰신거 보니까.. 특정 타이머(쓰레드) 안에서 매번 체크하여 어떤 신호가 왔을때 어떤걸 처리하고 이런 방식이 procedural 코딩방식에 약간 불편함을 느끼시는거 같네요.
:
: 혹시 이런게 하고싶으신건가요..어떤 모듈 안에서 값이 있나 없나 체크하여 있으면 작업해주고..타이머 루틴으로 빠지지않고.. 저 같은 경우 atm장비의 시리얼 통신에서 비슷한 경우가 있었는데..시리얼 통신으로부터 데이터 값을 받아서 신호 명령에 맞게 파싱하여 처리하는 스레드를 따로 두고.. 대신..버퍼라는 영역에 발생하는 순서대로 쌓아두도록 했습니다. 그러고 메인 루틴에서는 신호를 전송해보고 리턴값을 버퍼로부터 받는 기능을 추가하여 따로 빠지지않고 한 루틴 안에서 처리할 수 있도록 만들었는데.. 설명은 구체적으로 하기는 힘듭니다.
:
: 말씀하신대로.. 프로퍼티 하나 만드시고.. 이벤트 핸들러 연결되게 하신후..
: 신호 수신 쓰레드에서 특정 코드가 나올때 해당 이벤트 핸들러를 호출하도록 그런식으로 하셔도 될듯 싶네요.
: 좀 더 연구를 해보시는게.. 좋을듯 싶습니다. 이런 코딩은 잘못하면 정말 지저분하고 복잡해질 수 있으니까요.
:
:
http://kylix.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=56303
제가 검색을 소흘히 했군요 여기 제가 원하는 답변들이 있네요
C만 할줄 알고 C++을 잘 모르니 이런 경우가 발생하는듯 하네요 분명 C++은 비절차형 언어인데 항상 절차적으로 루틴을 걸어야 하는 그런 코딩만 해왔던것 같네요
아 그런데 마지막 말이 좀 궁금하긴 한데요 ". 이런 코딩은 잘못하면 정말 지저분하고 복잡해질 수 있으니까요"
그래도 안쓰는거 보다 좋지 않나? 하는생각이 문뜩 들어서 말이죠 ;
|