|
김용덕 님이 쓰신 글 :
: 피니아 님이 쓰신 글 :
: : c++ 빌더 6에서 thread을 사용하여 실시간으로 차트에 데이터를
: : 연속적으로 출력하는 부분을 만들고 있습니다.
: :
: : 헌데 thread는 정상적으로 도는것 같은대..
: : 차트 출력이 되지안아 질문드립니다.
: :
: : 지금 구성은
: : 연결 버튼을 클릭 하면 메인에서 데이터장치를 Initiallize를 합니다.
: : 즉 장치와 연결을 하구요, 그 다음이 thread부분에서 장치로 부터
: : 데이터를 얻어와 메인에 선언된 차트에 실시간으로 데이터를 뿌려주는 되는대
: : 그 부분이 잘 안됩니다.
: :
: : 아직초보라서.. 자세한 설명부탁드립니다.
: : thread 부분 헤더와 cpp 첨부합니다.!
: :
:
: 안녕하세요.
:
: 소스를 보니 Display가 안될 수 밖에 없네요.
:
: Main Thread가 While Loop를 계속 수행하고 있기 때문에, Form의 Message Loop를 탈 수 있는 시간이 없네요.
:
: 그리고, 위의 첨부하신 소스를 보면 굳이 Thread를 쓸 필요가 있었는지 의문이 되네요.
:
: 차라리 타이머를 사용하는 것이 더 낫지 않을까 생각이 됩니다.
:
: 굳이 Thread를 사용하셔서 효율을 높이려면,
:
: Data를 얻어오는 부분과 Chart에 데이터를 넣는 부분을 구분하여 작업을 하시면 될 것 같네요.
:
: Data를 얻어오는 부분은 Thread에서 구현하고, Chart에 넣는 부분은 Main Thread에서 담당하도록요.
:
: 제 기억으로는 TChart가 Thread Safe하지 않은 걸로 알고 있네요.
:
: 도움이 되시길...
용덕님 답변 감사합니다. 말씀하신 부분 참고하여 thread 수정하였구요.
thread 에서는 데이터만 취득해서 main으로 넘겨 차트에 뿌렸습니다.
한가지 더 궁금한 것이 있습니다.
차트에 값이 들어가 실시간으로 그래프가 그려지기는 합니다.
헌데 어떠한 이유인지는 모르겠지만 실시간이라기 보다 인터벌이 생깁니다.
측정장비에 손을 넣었다 빼면 한찬뒤에 차트에 그려지더라구요..;;
제가 보기에 어느정도 버퍼에 데이터를 쌓았다가 날리는것 같은대..
이런 부분은 어떻해 하지요?
thread 소스 첨부 합니다.
|