|
질문을 이해하기 힘드네요
1. "Grid를 쓰레드에서 돌린다?"
; 쓰레드에서 Grid의 Cell에 어떤 값을 넣거나 수정하거나 한다는 뜻이겠죠?
2. "쓰레드를 초단이로 ..."?
; 쓰레드의 Execute함수의 while루프 안에 Sleep을 1000즉 1초씩 sleep을 준다는 얘기겠죠?
답변
결론적으로
- VCL의 모든 Control 은 GUI-쓰레드 즉 Main쓰레드에서 생성및 값을 변경해야 별문제가 없습니다.
- 쓰레드에서(메인쓰레드가 아닌) 주기적으로 gui 쓰레드에 있는 control에 값을 변경하고자 한다면
control의 값을 변경하는 코드를 따로 함수로 구현해두고 ,
그함수를 쓰레드에서는 Syncronize로 호출해주면 됩니다.
추가..
같은 GUI쓰레드에서 control을 조작하더라도 화면이 껌벅거리는 경우가 발생할수도 있습니다.
대개 이런경우 DoubleBuffering을 씁니다.
VCL에서는 그냥 wincontrol을 상속받은 control에다가
control->DoubleBuffered=true; //이렇게 한줄만 해주면 되죠
그럼..
사악왕 님이 쓰신 글 :
: 그리드에서 쓰레드를 돌리면 그리드 안에 값이 입력이 될때마다
: 물결이 생기던가 쓰레드를 초단이로 돌리면 계속 그리드 화면이 깜박깜박이더라고요
: 이러한 문제 해결을 아직 못찾아서 지금 이렇게 글을 올립니다.
|