DoEvents함수를 효과적으로 사용하기

DoEvents함수는 CPU-intensive code를 예방하는 방법 중의 하나이다.
수치해석과 같이 CPU계산량이 많은 응용프로그램일 경우, 계산에만 몰두하느라 다른 응용프로그램을 사용할 수 없게 된다. 해당 프로그램도 응답이 없어 마치 죽은(?) 듯한 반응을 보인다. 이를 방지하기 위해서 다른 응용 프로그램에도 CPU사용을 허락하는 것이 DoEvents함수이다.
이렇듯 좋은 취지의 함수이지만, 이 함수를 남발할 경우 오히려 계산속도가 현저히 떨어지는 상황을 맞이할 수 있다. 그럼 어떻게 할 것인가?

1)DLL 함수 선언
[code]Public Declare Function GetInputState Lib "user32" () As Int32[/code]
2)함수 사용
[code]If Not GetInputState() = 0 Then Application.DoEvents()[/code]

이렇게 하면 입력값이 있을 때만, DoEvents 함수를 호출한다.
그냥 DoEvents함수를 사용하는 경우보다 계산속도가 빠르다.

Posted by solarview

2008/05/20 10:20 2008/05/20 10:20
, ,
Response
No Trackback , No Comment
RSS :
http://www.solarview.net/rss/response/175

Trackback URL : http://www.solarview.net/trackback/175

« Previous : 1 : ... 125 : 126 : 127 : 128 : 129 : 130 : 131 : 132 : 133 : ... 297 : Next »