2012-01-05 188 views
2

我們正在對某些數據更新進行Web服務調用以同步另一個數據庫。此Web服務調用需要一些響應時間。將它添加到線程中有幫助嗎?這樣做的任何垮臺?如果Web服務調用失敗,則失敗,就是這樣。這就像一場火災,忘記呼叫。在另一個線程中調用ASP.NET Web服務

+0

Mike ..客戶端是Windows應用程序還是Web應用程序?如果Windows應用程序可以安全地進行異步調用。這比使用線程更安全。但對於Web應用程序..我建議不要,而是使用Ajax。 – Bhuvan 2012-01-05 21:14:20

+0

這是一個web應用程序回發或ajax。 – 2012-01-05 21:16:35

回答

2

您可以使用異步Web服務調用使用異步回調來防止阻塞您的主線程。

通過向Web服務的異步調用,您可以繼續使用 調用線程,而你等待Web服務響應。 這意味着用戶可以繼續與應用程序 進行交互,而不會在Web服務訪問進行時鎖定它。

從MSDN:Making Asynchronous Web Service Calls

2

如果花費足夠長的時間來掛起用戶界面,那麼建議在另一個線程上調用它。

2

除了都鐸王朝的回答,我建議您從.NET 4.0.from任務並行庫中使用新的Task類開始。例如:

Task backgroundProcess = new Task(() => 
{ 
    service.CallMethod(); 
}); 
+1

用於提示「任務」解決方案 – 2012-01-09 12:03:25

0

我強烈建議不要使用異步調用Web服務(包括製造在單獨的線程調用)從一個Web應用程序。而應使用其他方法(如Ajax),並從Ajax Call實例調用此webservice調用。在Web上下文中處理線程和異步調用沒有簡單的方法。

相關問題