我已經用C#編寫了一個程序。現在我完成了所有的功能並且工作。但只能用一個線程運行。我正在進行大量計算,有時會將大約300 MB或更多的測量文件加載到應用程序中。使用單線程多線程C編寫程序#
我現在想讓程序多線程化,因爲用戶體驗在激烈的處理或I/O操作時非常糟糕。
什麼是重構程序的最佳方式,以便它可以進行多線程,沒有太多affort?我知道這是我應該思考的東西。但我沒有。
我對程序幾乎所有其他功能中涉及的3個大而重要的模塊使用了單例模式。
我使用了一個或多或少乾淨的MVC(模型視圖控制)架構。所以我想知道是否可以讓用戶界面在一個線程中運行,而其他應用程序在另一個線程中運行。
如果不是,加載和解析300MB,創建對象大約需要3分鐘才能完成。在這段時間內,用戶從GUI沒有得到任何迴應。 :/
更新: 我的單身人士被用作一種存儲。一個單身保存解析的測量文件的對象,而另一個單身保存結果。我有不同的計算,它們使用相同的測量文件並創建他們想要使用另一個單身人士保存的結果。這是一個問題。
第二種方法是讓傢伙對用戶操作做出響應,或者至少避免此警告窗口沒有響應。
謝謝大家的所有建議。我會嘗試他們。對於遲到的答覆抱歉。
在.NET簡單的方法:你可以做你的處理BackgroundWorker的(S),所以UI線程可以自由地做他的生意。 – jv42
PLINQ如何? – mironych
你使用什麼UI技術(WinForms,WPF,Web等)? –