2011-03-22 169 views
1

我寫了一個函數,它執行了大量的數學運算,大約需要10分鐘才能完成它的工作。我試圖通過窗體上的按鈕(Windows窗體應用程序)調用此函數。但現在的問題是在10分鐘內,主要形式停止響應,直到功能完成其工作。主窗體停止響應

我該如何解決這個......任何想法!

回答

2

您可以分配用於計算一個新的線程,這樣的形式就不必等待計算完成,繼續執行(即傾聽和響應事件等等)前面已經提到,你應該

1

問題是,當您的10分鐘功能正在工作時,程序的其餘部分不會執行。特別是,它不能執行渲染。 (即讓您的表單迴應)。

解決方法是使用threads

1

將長時間運行的任務分配給工作線程或線程池線程。

請記住,線程池線程數量有限。 Windows窗體也不是線程安全的,因此您不應該直接從創建的線程更新窗體。你可以使用InvokeRequired。