|
ProcessMessages를 하고 난뒤 문제가 생기는 것은, 쓰레드나 타이머, 이벤트등에 의하여
프로그램 순서가 변경 되었기 때문입니다.
루틴 상의 문제보다, 전체적인 흐름을 보신 뒤, 이벤트가 중복 실행될 수 있는지의 여부,
쓰레드나 타이머 중간 루틴이 끝나지 않았는데 재 호출 되면서 병행 실행될수 있는지의
여부등을 주의깊게 보시는 것이 좋으실것 같습니다.
cuperido
초보 님이 쓰신 글 :
: binary화일을 버퍼에 로드 할때 binary 화일이 너무 커서
: 윈도우를 움직이면 움직이지 않아
: ex)
: while(size != 0) {
: read(hds, pkbuff, 0x10000);
: write(hd, pkbuff, 0x10000);
: Application->ProcessMessages();
: }
: 위와 같은 Application->ProcessMessages() 함수를 이용하면 윈도우가 멈춘것 같이 않고
: 윈도우를 마우스로 움직일수 있습니다.
: 그러나, 위와 같이 동작중에 윈도우에 로드 되는 값이 틀리게 로드 됩니다.
: 정확히 만약 로드 되는 중간에 윈도우를 움직이면 움직일 때 그 시점의 값이 이 상한 값이 올라옵니다.
: 그러나, 만일 마우스로 윈도우를 움직이지 않고 가만히 두고 로드하면 정확하게 로드 합니다.
: 왜 그럴까여?
:
|