我正在設計一個應用程序,它有可能在從服務器(無論是數據庫還是因特網)等待數據時掛起,問題是我不知道如何處理大量不同的地方可能需要時間。我應該在後臺線程中運行一切嗎?
我很高興在訪問正在發生時向用戶顯示「加載」對話框,但理想情況下,我不希望它彈出並在短期運行操作中消失。
微軟的話似乎很好地處理了這個問題,就好像你單擊一個按鈕並且操作需要很長時間,幾秒鐘後你會得到一個'working ..'對話框。該操作仍然是同步的,您不能中斷操作。但是,如果相同的操作很快發生,你顯然不會得到對話框。
我很高興(ish)設計出一些通用的後臺工作線程處理程序,並且我的數據處理的99%已經在靜態原子方法中完成了,但是如果可以的話,我希望能夠在這一方面進行最佳實踐。
如果任何人有模式,代碼或建議,我歡迎他們所有
乾杯
除了你有額外的線程開銷之外,這與我所說的有什麼不同? –
@不退款不退貨:這裏沒有「額外線程的開銷」。差異在於方法。我給了他一個不同的選項,主線程中沒有定時器來處理這個問題。您的解決方案也需要單獨的線程,因爲異步方法調用是在單獨的線程上完成的。我還建議查看TPL中的任務進行異步處理。 –
是的,但使用異步代碼,操作系統管理線程而不是你。你的方法對於開發者來說更多的工作,並且有更多的錯誤空間。 –