2012-03-13 25 views
0

我在打開需要一些時間執行的Excel工作簿時正在線程中運行代碼。如果我試圖在線程仍在執行時關閉工作簿,給我標準提示以保存或取消,當我單擊取消時,我的線程中斷(不確定「技術上中斷」是否正確)。更一般地說,UI交互/更新似乎導致線程被中斷。VB.NET中斷的線程

有沒有辦法來1)阻止線程被UI更新/用戶交互暫停,或者2)允許線程在被中斷後恢復?

沒有什麼特別之處代碼:

Private Shared Sub Test() 
    Dim t As New Thread(AddressOf DoSomethingThatTakesAWhile) 
    t.Start() 
End Sub 
+0

「中斷」是什麼意思?什麼_exactly_發生?你在調試器中看到什麼? – SLaks 2012-03-13 04:34:51

+0

你只是在線程中得到一個異常? – SLaks 2012-03-13 04:35:19

+0

嗨瑞安,這不能回答你的具體問題,但是,我相信你可以將Excel應用程序對象的可見性設置爲false,以便用戶不能與它交互。例如,根據您的應用程序在做什麼,您可能可以執行長時間運行的任務(同時以某種方式指示進度),然後在完成時顯示Excel。 – joshuahealy 2012-03-13 04:39:34

回答

0

我做了一堆這一進展,但最終還是沒能得到這個用我原來的工作方式。所以,我切換到.Net Framework 4.0並使用Tasks(System.Threading.Tasks命名空間)來處理作業。任務工作得非常直觀,消除了線程管理的複雜性。