我創建asmx Web服務並且必須創建線程來執行後臺IO以刷新系統數據。什麼是正確的方式?我不想讓任何結果創建線程。我只是希望ASP.NET工作線程創建一個線程,它是否加載並最終進行一次賦值(我認爲在我自己的大型結構類SystemData的兩個實例中分配_alldata = newData是原子),因此創建的工作線程新線程可以即時傳播。在ASP.NET Web應用程序中創建線程的正確方法
我看了一篇文章http://msdn.microsoft.com/fi-fi/magazine/cc164128%28en-us%29.aspx#S2,建議使用非線程池線程。這篇文章是關於不同/更復雜的情況,並沒有太多幫助我。
感謝:Matti
PS。我也在what is the right way to spawn thread for database IO in asmx web service?中問過這個問題,但這個問題太複雜了,有很多問題。
沒有開始一個新的線程需要更多的資源,然後使用線程池中的線程? – SirMoreno 2009-12-01 12:16:57
感謝您的回答!現在似乎有與您和SirMoreno爭論是否使用線程池線程或不... – 2009-12-01 13:34:46
是的,啓動一個新線程使用比線程池線程更多的資源。然而,這個想法並不是爲每一個行動開始一個新的線索。相反,只需啓動一個(或少量)自己的線程,然後將某種WorkItems傳遞給它們以供執行。同樣,線程池線程的問題在於它們會降低應用程序的可伸縮性,因爲它們與用於處理頁面的線程相同。 – RickNZ 2009-12-01 13:52:53