在使用Delphi進行編程的時候,假如有一個長時間的循環,為了防止程序執行這個循環耗時太久而不能去響應其他消息,導致比如窗體不能拖動、按鈕沒法點擊的情況,那麼就需要在在循環中使用Application.ProcessMessages。
那麼Application.ProcessMessages還有沒有其他的作用?
Application.ProcessMessages的大概的原理是什麼樣的?
Application.ProcessMessages的功能
通常情況下,程序在循環的時候不響應外界事件。直到循環結束為止才能接受和響應外界事件。
為了防止界面假死,就可以在循環的某時,執行Application.ProcessMessages,使程序在循環時能夠響應外界事件。把控制權暫時交給系統,這樣界面就不會假死。
Application.ProcessMessages可以有效的解決循環循環的獨占問題,能夠暫時中斷應用程序的執行。
比如,你的一個循環10000次。你可以設置每循環100次的時候,執行一次Application.ProcessMessages,讓程序響應其它操作,此時你就可以預先設置的cancel按鈕取消循環。