我有一個例行程序,看起來像這樣,在僞代碼:過濾Windows的消息隊列
while PeekMessage(Message, 0, 0, 0, PM_REMOVE)
HandleMessageAppropriately(Message)
基本上,它經歷並拉起所有消息從隊列和調度它們。我無法改變這個例程。
我有一個場景,在這個例程中,如果它在某些條件下被調用,並且隊列中有一條消息表示用戶在恰好錯誤的時刻點擊了ESC
,它可能導致程序崩潰。 (愛情競賽條件)
我不能改變上面的例程,但我可以改變調用它的代碼。有沒有什麼方法可以在運行之前立即執行某些操作,它會說「通過消息隊列並刪除所有鍵盤輸入消息,其中用戶按ESC,而不影響隊列中剩餘的項目或更改它們的順序「?
看起來像有人一直在調用ProcessMessages! – 2011-05-12 22:23:10
@大衛,是的,是的。 – 2011-05-12 22:31:31