2017-03-15 58 views
0

我正在處理我的項目並自動發送電子郵件,但是我的表單受到影響並凍結,直到處理完成。如何在不凍結當前窗口的情況下工作?我正在研究VB.Net。防止表單凍結

+0

我在youtube上發現了一個關於backgroundworker的視頻,並開始處理它。我希望它能解決我的問題。 –

+0

https://www.youtube.com/watch?v=jv4FdoaUMQE –

+1

有很多資源比youtube更好 - 例如MSDN,以及這裏的問題。大多數YouTube視頻將其降低爲魔法(伴隨着糟糕的音樂) - 點擊此處;鍵入這個;點擊這裏;鍵入這個。你最終根本不知道它做了什麼,爲什麼有些事情是這樣或那樣,或者是你知道關於你正在使用的技術的關鍵所在。 – Plutonix

回答

-1

您發送的電子郵件代碼與UI線程同步運行。您需要在單獨的線程上運行該代碼以維護UI響應。

看看下面讓你開始:

Safe, Simple Multithreading in Windows Forms, Part 1

Multithreading in Windows Forms Controls

第一個鏈接是很老,但它顯示瞭如何完成你正在使用的Thread類嘗試。如果你不關心與表單同步並在控件上設置屬性,那麼這將做你想要的。但是,我更喜歡第二個鏈接...

第二個鏈接使用BackgroundWorker。這是最好的方法,至少對我而言。如果您不關心收到該流程的通知(在這種情況下發送電子郵件),您可以隨時忘記並完成。但是,使用此類,您還可以直接使用表單,並且它是BackgroundWorker的RunWorkerCompleted事件中的控件。

+0

目前正在看它先生。 –

+0

任何人都在意解釋我的回答沒有用處? –

+2

我沒有downvote,但它可能是由於幾個原因。有些人喜歡看到世界在燃燒。 2.這是一個很糟糕的問題,通過回答你保持問題的存在3.你真的沒有提供任何你的答案中的鏈接的上下文。鏈接可能會死亡,如果他們做的內容與他們一起死去。 – Bugs