![]() |
|
||||||||
경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지 |
|
Lyn [tohnokanna]
2012-08-13 14:41 X
ㅜㅜ 전 자주 쓰는데
저자가 예로든 재귀호출 가능성이야
간단히 조치가 가능한 문제인데 굳이 Application.ProcessMessages 에게 누명을 씌울 필요는 없다고 봅니다. Application.ProcessMessages는 매우 유용한 메소드입니다. 저는 거의 쓰지 않지만, 메인 쓰레드에서 동작이 잠기지 않게 할때는 유용합니다. 쓰는 사람의 수준 따른 문제이지 Application.ProcessMessages 메소드 자체를 문제시 하는건 누명씌우기 같네요. 델파이 VCL 내에서도 적지 않게 Application.ProcessMessages 사용을 목격할 수 있는데 적절히만 사용하면 아무런 문제가 안된다고 봅니다. Zarko Gajic이 쓴 글은 재귀호출과는 아무런 관련이 없는 겁니다.
글의 요지는 어떤 블럭 내에서 텀이 긴.. 이를테면 파일 처리 같은 경우... 작업이 처리될 때... 메인쓰레드가 블럭킹 되는 것을 피하기 위해서 Application.ProcessMessages 를 호출 하더라도... VCL 프레임웍 구조 자체가 Single Thread 구조라서... 파일 처리에 걸리는 텀 동안 ... Application.ProcessMessages 자체도 그 텀 동안 블럭킹 상태가 되기 때문에 .. 2차 적으로 버튼을 눌렀을 때.. 프로그램 흐름의 동작 시퀀스 상에 Sync 가 어긋나서 문제가 발생하게 된다는 게 촛점이지.. 재귀호출과는 아무런 상관이 없는 내용입니다. 경우에 따라서는 동기가 어긋나는 바람에 엉뚱한 참조가 일어나서 Access violation이 일어 날수도 있을 테고요... Zarko Gajic이 글에서 언급한대로 VCL 프레임웍의 구조적인 한계 때문에 Application.ProcessMessages 는 생각을 하면서 써야 합니다. 그리고 델파이 VCL 내에서 Application.ProcessMessages가 사용되는 경우는 VCL 내의 해당 루틴이 위와 같은 동작 시퀀스 상의 문제와 관련이 없어서 고려할 필요가 없기 때문인 거지, VCL에서 적지 않게 사용이 목격 된다고 해서 무턱 대고 사용할 건 아니죠. 관련 글 리스트
|
Copyright © 1999-2015, borlandforum.com. All right reserved. |