非常少見我和線程,後臺工作人員等一起工作,但從來沒有試圖知道我們應該使用哪一個以及每種技術如何在內部工作。所以在這裏我提出了關於線程,異步調用方法,後臺工作者或TPL的幾個問題。我在這裏道歉,我問了幾個問題。我的要求是請閱讀並詳細回答。關於調用方法的各種方式
當我們運行我們的應用程序時,應用程序以一個稱爲主線程的線程開始。 GUI相關的控件是在另一個線程上創建的,我聽到了多少....是真的嗎?有沒有爲GUI創建任何線程?
當我們調用很少的方法,然後所有的方法調用順序發生意味着一個方法調用立場&結束然後下一個方法將星號和一切發生在主線程。這就是主線程被阻塞的原因。如果我們不想阻塞主線程,那麼我們總是喜歡在另一個線程上異步運行方法。異步調用任何方法意味着在單獨的線程上執行方法是真的嗎?如果不是這意味着異步調用在同一線程中執行而不阻塞主線程的任何方法?如果是,那麼它是如何可能的。請詳細解釋。
當我們調用任何不會阻塞主線程的異步方法時,實際發生了什麼?我需要知道幕後發生了什麼。
通過thread.start調用方法和異步調用方法有什麼區別?
後臺工作者異步執行方法在同一主線程或單獨的線程?
當我們調用帶thread.start的方法時,如何指定回調,當我的方法完成後會發生回調並讓我知道該方法完成。我嘗試用thread.start找到這樣的例子,但沒有找到。所以請幫我用示例代碼來做。
任務並行庫的主要目標是什麼。 TPL在主線程或獨立線程中執行任何方法?
我們可以使用thread.start或後臺工作或調用任何方法以異步方式來解決我們的目的又是什麼多餘的東西是給TPL爲人們使用它?
建議閱讀:[C#中的線程](http://www.albahari.com/threading/) – 2013-04-29 20:01:22
我正要回答,但我發現自己在重複自己。對BackgroundWork課程進行一些研究,然後回過頭來,將您的問題修改爲一個問題。如果你研究異步和同步線程之間的區別,每個問題都可以由你自己來回答。由於您有7個不同的問題,而且大多數問題都非常廣泛,所以我對此標記並不具有建設性。 – 2013-04-29 20:05:27
你應該問每個問題一個問題,而不是一個問題。正如拉姆霍德所說,這些問題中的一部分或者是相同的,或者可以合併成一個問題,但其中有些問題是不同的,應該在他們自己的問題中。 – Servy 2013-04-29 20:18:30