0
我正在開發基於桌面的c#winform。 應用程序可能意外關閉(電源故障或調試模式關閉)。 在任何結束條件我需要更新我的數據庫。 即我需要將在線狀態從1更改爲0 如何執行此操作?更新數據庫,如果應用程序在c#winforms中意外關閉
我正在開發基於桌面的c#winform。 應用程序可能意外關閉(電源故障或調試模式關閉)。 在任何結束條件我需要更新我的數據庫。 即我需要將在線狀態從1更改爲0 如何執行此操作?更新數據庫,如果應用程序在c#winforms中意外關閉
知道應用程序是否已經死亡的最好方法不是試圖想象在應用程序關閉時更新數據庫的方式;但是,無論何時打開應用程序,都可以創建一個「會話」記錄;然後每分鐘「ping」記錄(即有一個LastPingUTC列)。
如果應用程序因任何原因關閉,LastPingUTC值將超過1分鐘前,因此您可以假定應用程序/會話已死亡。
實際上,我假設5分鐘後給定的會話已經停止,因爲更新列可能會延遲。
你真的認爲這個問題通過?如果電源故障,那麼你的電腦就關閉了,那麼你的應用程序怎麼會奇蹟般地將數據保存到數據庫? – jmcilhinney 2014-09-22 07:17:49
您將需要外部數據庫和另一個程序來「詢問」桌面winform是否處於活動狀態。 – Pavenhimself 2014-09-22 07:19:14
很明顯,崩潰的應用程序將無法執行數據庫更新。可以嘗試的選項是在應用程序中定期(比如每5分鐘)更新數據庫表中的當前時間。任何檢查在線狀態的人也應該檢查應用程序上次更新此時間段的時間。如果最後一次更新的時間值大於一個值(比如說6-10分鐘),那麼我們可以假設應用程序處於離線/崩潰狀態。 – 2014-09-22 07:30:28