如果我的應用程序崩潰,我使用ExceptionFilter趕上大跌,進行一些最後的動作,然後顯示一個消息框應用程序崩潰的用戶。的MessageBox與超時或從另一個線程關閉一個MessageBox
由於應用程序已經墜毀,機上有沒有什麼我可以(或我不敢)做,因爲如果我做的太多,執行的代碼可能會再次訪問損壞的內存和崩潰。 我目前不能做的一些事情(或者我不敢做)是關閉網絡連接,Oracle數據庫會話......
問題是,如果一個應用程序崩潰,並且用戶是在MessageBox處於打開狀態時進行午餐時,由於打開數據庫會話,可能會阻止其他用戶。因此我想要:
- 可能是帶有超時的MessageBox。問題是,你不能用標準的MessageBox Win32 API函數做到這一點,我不想做具體的對話吧(因爲我希望儘量減少撞車後執行的邏輯)
- 或者可能性關閉另一個線程的MessageBox(另一個線程可以提供超時邏輯)。
我是否忽略了Win32 API中的某些內容,並且有可能產生超時的MessageBox?
或什麼是從另一個線程關閉打開的消息框的正確方法(如何獲取MessageBox的手柄,怎麼關閉它,...)?
我想要寫相同的建議:建立針對DialogBox'的'一個新的對話框,創建'WM_INITDIALOG'的'內SetTimer'一個計時器,並關閉對話框在'WM_TIMER'中。 – Oleg 2010-06-22 08:30:43