2010-01-20 49 views
2

在WPF應用程序中,我使用內部的LINQ to SQL查詢try - catch構造來處理異常,以防DB服務器連接出現問題。什麼是不斷檢查SQL Server連接的標準方法?

問題是 - 我有一些查詢在計時器輪詢的基礎上執行。所以,如果連接失敗,我有許多長時間的查詢嘗試和UI凍結。

什麼是標準出路?我想輕鬆輕鬆地檢查db連接是否正常,然後用我所有的查詢做所有的事情。

回答

5

在backgroundworker線程或完全獨立的線程中運行它。

不應該在UI線程上完成工作,除非它直接與UI本身相關。 BackgroundWorker是一個可以讓線程這樣的東西非常簡單的對象。有關教程,請參閱this entry。它解釋了後臺工作人員在做什麼以及如何使用它。

如果您在UI線程上工作,則您正在從UI中竊取CPU週期,導致其對用戶感覺緩慢。運行它自己的線程和然後更新用戶界面是最好的方式來做到這一點。這樣用戶可以做其他的事情,用戶界面的響應正常。

+0

謝謝!關於鏈接上的教程文章是關於Windows窗體應用程序的,請告訴我,BackgroundWorker是否也適用於WPF應用程序? – rem 2010-01-20 17:54:58

+0

谷歌說「是」)+1 – rem 2010-01-20 18:04:11

+0

是的,backgroundworker將工作在WPF – Malfist 2010-01-20 18:09:28

3

爲什麼不把你的輪詢查詢移動到他們自己的線程上,這樣他們就不會凍結UI?然後他們可以向主UI線程發出消息或事件,並且可以在那裏處理它(彈出錯誤消息等)。

+0

感謝您的想法! +1 – rem 2010-01-20 18:04:57

相關問題