這可能是一個非常普遍的問題 - 但我對C#很陌生。 你能否向我解釋一下,或給我一個例子或解釋的好鏈接。如何在C#WinForms應用程序中設計工作流程?
我想設計一個C#Winform應用程序。 應用程序有一個主窗體,在需要時收集用戶輸入。 與UI一起,開發了一個複雜的長時間運行計算算法。 計算開始由主窗體上的一個按鈕觸發。 (CaculateClass.Start())
問題1: 在時間深處CaculateClass的方法調用堆棧的某一點的CaculateClass檢測出它需要來自用戶的進一步輸入,繼續計算。
在古代C++控制檯應用程序中,人們可能會這樣做: cout < <「Ask question」; cin >>回答;
這是如何在C#中使用winforms完成的,要將控制權從調用堆棧中的某個位置傳遞到UI,獲取輸入並返回到計算被中斷的位置? 或者CaculateClass被設計成完全不同的?
問題2 爲了避免UI凍結,很多文章推薦將這種長時間運行的計算放入另一個線程中 - 例如,通過使用BackgroundWorker()
如果我讓CaculateClass.Start()由BackgroundWorker計算 - >收集用戶輸入如何工作?
感謝您的幫助, CS