|
스레드 execute() 안에
for loop이 있고
loop 안에는 TChart와 같은 그래프 표현하는 부분이 포함되어있습니다.
Synchronize와 같은 것을 사용해서 TChart부분을 호출해서 사용을 하고 있습니다.
하지만, loop이 돌아가는 속도와 그래프가 디스플레이되는 속도가 달라서
이 두개를 동기화 되어서 관찰을 할 수가 없습니다.
critical section같은 경우는 global variable의 쓰기 시에만 관여를 한다고
도움말에는 명시가 되어있네요.
어떻게 해야지 그래프가 디스플레이를 완료된 후에 다음 loop이 실행되게 할 수 있을까요?
즉, loop이 한번돌아가면 모니터에 그래프표시되고 그리고 나서 다시 loop 돌고 그리고
그래프 표시되고.. 이런 형식을 원하는데,
현재는, 스레드니까 loop은 돌고 그래프표현되는 것은 delay가 있기 때문에
spool같은곳에 저장을 해두나 봅니다. 그래서인지 그래프가 완결된 결과만을 보여주네요...
원래원하고자 하는 것은 그래프의 진행상황을 관찰하는 것입니다. ^^
부탁드려요
예제>
void __fastcall e_thread::execute()
{
for(;;){
Synchronize(line_graph());
}
}
void __fastcall TChart::line_graph(void)
{
j_TeeChart->Series1->AddXY(1,1,clRed);
}
|