簡體   English   中英

C#ASP多線程或Web方法

[英]c# asp multi threading or web method

我對多線程/ Web服務以及是否/如何在我的問題中使用其中之一提出了一些建議。

我在c#asp站點上有一個按鈕,該按鈕會執行大量api調用,此過程可能需要幾分鍾。 我想將這一過程拆分開,以便它可以在“后台”執行,並且不會破壞用戶體驗。 該過程緊密地纏繞在我當前的項目中,因此將代碼拆分成一個單獨的Web服務項目並不容易。

所以..

  1. 如果我運行以下線程代碼,如果用戶終止了瀏覽器,它將成功執行嗎? 我的問題/注意事項是什么?

線程線程=新線程(新ThreadStart(RefreshData));

  1. 如果上述方法不起作用,是否可以通過在同一項目中添加一些[Web方法]並從同一項目中調用它們來使其工作? (如果是-有任何提示嗎?)

  2. 如果這樣做,它將在另一個iis線程中成功執行它們嗎? 即..如果用戶殺死了他們的瀏覽器-我可以確定服務中的過程將成功完成嗎?

另外,我計划將站點托管在AWS上-因此,如果從這個角度考慮,任何見解也將有所幫助。

預先感謝幫派..

您可以運行后台線程。 即使訪問者關閉了瀏覽器窗口,它們也會運行。 您可以使用會話/ Cookie將這些線程/工作量與訪問者相關聯,因此,即使他們重新訪問了網站,他們也可以根據進度進行訪問。

您需要注意的是防止Web服務器進程被回收。 默認情況下,這將在某個超時或生存期之后發生。 您必須更改相關設置。

另外,請保留對您創建的線程的永久引用,以防止其被垃圾回收。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM