2009-11-15 51 views
2

我正在開始使用ASP.NET Web開發,並想知道在多線程標準winforms應用程序與在asp.net中編寫的基於Web的應用程序(它們將在IIS中運行) 。是否有任何區別,如果是的話,有什麼限制(相反地任何積極的)線程的Web應用程序, 先謝謝您Web環境中線程的注意事項

回答

3

在Windows GUI世界中,您始終擁有可用於與用戶通信的「UI線程」。例如,您可以在UI線程中啓動BackgroundWorker,該線程在完成其工作後將在UI線程中引發一個事件:在Windows UI應用程序中,可以確定UI線程仍然存在,除非用戶具有關閉了應用程序。

在網絡世界中,您沒有相應的主線程。只有網絡請求:有時沒有,有時同時有很多;甚至有可能一個請求將被多個線程處理,而你不知道它。如果你啓動一個後臺線程與一個冗長的操作,你需要或者

  • 延遲完成Web請求,直到後臺線程已經完成 - 這意味着一個緩慢的響應時間,爲用戶和莫名其妙擊敗的目的後臺線程或
  • 定期(在將來的請求期間)檢查線程的狀態並通知用戶何時完成。

當然,這只是一個問題,如果你想在線程完成後進行一些用戶交互。如果你不這樣做,只需啓動它並最終完成(除非有人重新啓動IIS)。

0

線程是不是真的在網絡世界的問題。沒有任何狀態,每個請求都是網頁的新實例。有許多方法可以跟蹤cookies,sessionstate,viewstate等請求之間的狀態。

+0

這只是不正確的。很多網站在服務器端使用線程。 – Liam 2013-08-05 09:51:05

+0

@liam問題是關於ASP.NET,並且是4歲,是那個時期的有效答案。 – 2013-08-07 01:02:05