|
TChart가 왠만큼 데이타 많이서는 버벅거리지 않는걸로 알고있습니다만.....
[질문]
얼마나 많은 양의 데이타를, 얼마나 자주 가져와서, 얼마나 자주 TChart에 갱신해 주는지요?
질문의 내용만으로는 로직이 어떻게 돌아가는지 잘 이해가 되지않아
이렇게해보세요 라고 구체적으로 얘기하는 힘드네요
그래도 한두가지 제안해보면..
[제안1]
두번째 쓰레드에서 하는 작업을 그냥 메인쓰레드에서 하면 안되나요
그리고 Series->Add()하면서 중간에
Application->ProcessMessage() 해주시면 그런 문제 없어질것 같은데요
메인쓰레드에서 할경우 위와같이 해주면 데이타가 아무리 많아도 문제없죠
[제안2]
그냥 두번째 쓰레드를 2번방법으로 해두고
메인쓰레드와 Syncronize 하시면 될듯도...
방법3은 안되구요 , Sleep한만큼 손해봅니다.
방법1이 통하는 이유는?
두번째 쓰레드가 멈춘후에 메인쓰레드 TChart의 화면갱신이 일어나기땜시....
되는것 같은데.... 권하고 싶은 방법은 아니네요
2번방법으로 하되 TChart에 그리는것을 메인쓰레드에서 하는
제안1을 권합니다.
제생각엔 그 방법이 제어도 편하고 , 속도도 빠를것 같습니다.
그럼....
왕초보빌더 님이 쓰신 글 :
: 프로그램이 시작되면 쓰레드를 두개 만듭니다.
: 첫번째 쓰레드 : 데이터를 읽어오는 쓰레드
: 두번째 쓰레드 : 데이터를 TChart에 그리는 쓰레드
: 많은 양의 데이터를 읽어와서 빠른 속도로 그래프로 출력해야 해서 위 처럼 두개의 쓰레드를 사용했습니다.
: 그리고, 둘 간에 동기화는 하지 않았습니다.
: 데이터를 읽어와서 TChart에 그리는데 까지는 전혀 문제가 없습니다.
:
: 그런데, TChart 가 CPU 를 너무 잡아서 그런지...
: TChart가 메인 폼에 있는데... 메인폼에 있는 버튼들이 잘 동작하지 않습니다.
: 마우스를 스무번 이상 클릭해야 한번 정도 동작하는 것 같습니다.
:
: 해결책이 없을까요?
: 고수님 들의 답변 기대합니다... 도와주십셔... ㅜ.ㅜ
:
: 참... 그리고 TChart 7 Pro 버전에서는 위와 같은 문제가 생기지 않을까요?
: 도저히 방법이 없다면 구입을 해서라도 해결해야 해서리...
:
: 그리고 다음은 제가 시도해본 방법입니다.
: 1. 데이터를 받아오는 쓰레드에서 메시지를 날려서 그래프를 그리는 쓰레드를 resume 과 suspend 를 반복하게
: 해줘봤습니다.
: 효과를 약간 보기는 했지만, delete 쓰레드를 했을때 쓰레드가 죽지 않는 문제가 발생합니다.
:
: 2. 그래프를 그리는 쓰레드 안에서 루프를 돌면서 주기적으로 Application->ProcessMessage() 를 해줘봤습니다.
: 그러나, 별로 효과가 없었습니다.
:
: 3. 그래프를 그리는 쓰레드 내부에서 일정 량을 그린후 Sleep(100)을 줘봤습니다.
: 위의 1번과 비슷한 효과를 얻었습니다.
:
: 제가 시도해본 방법으로 약간의 효과를 얻을 수는 있었지만, 만족할 만한 수준은 아니었습니다.
|