2011-12-20 65 views
2

我對Asp.Net中需要創建單個線程的時間有疑問嗎? 我是編程新手。 在此先感謝。在哪種情況下,我們需要創建一個新的線程?

+0

我不確定這是否正確表達。有很多很好的理由來創建一個新的線程(使用C#和其他語言),我們可以將網站全部列出。你是否遇到任何你不確定的事情? – corsiKa 2011-12-20 07:21:09

回答

2

由於您是編程新手,下面是您的簡化事實:從不。您不必在ASP.NET中創建新線程。

當您獲得更多經驗時,您將瞭解到高級技巧。

+0

但是,如果我不創建一個線程。它引發錯誤:「ActiveX控件'8856f961-340a-11d0-a96b-00c04fd705a2'無法實例化,因爲當前線程不在單線程單元中。」如何避免這個問題? – Tina 2011-12-21 06:59:06

4

Web應用程序中的表示層通常不需要自己創建額外的線程。 ASP.NET將管理線程(有時以令人驚訝的方式 - 它是線程敏捷,因此您可以在一生中找到一個請求在多個線程中處理)。

如果你正在編寫一個能夠以同步(阻塞)的方式處理每個請求的web應用程序,事情是相當簡單的 - 如果你需要編寫「長輪詢」應用程序,你可能會期望幾十或數十萬個同時連接,全部等待基於事件的響應。 C#5和VB 11將使新的異步功能變得更簡單。

通常,線程更有可能在表層創建,儘管可能仍然運行在ASP.NET中,但可能作爲單獨的Windows服務運行。但是,即使在那裏,除非您真的需要它,否則值得嘗試避免多線程的複雜性。

「富」客戶端應用程序(WPF,WinForms的,Silverlight的)是可能更需要線程或至少某種形式的同步性,因爲他們需要保持UI線程可以自由地處理UI事件,雖然他們可能有一些後臺處理(無論是本地CPU綁定工作還是可能從磁盤或網絡加載文件)。

+0

謝謝你的接吻。 – Tina 2011-12-21 06:48:14

1

如果您需要運行背景/單獨(從應用程序)任務,您可能需要創建單獨的線程(超出應用程序邊界),通常通過常用數據庫完成集成。 在ASP.NET中通常使用在服務器上運行的服務完成,例如向用戶發送電子郵件通知等的服務。

+1

謝謝你的評論。這對我很有用。 – Tina 2011-12-21 07:02:09

+0

永遠的快樂:) – Rizwan 2012-01-11 11:28:44

相關問題