2012-03-13 61 views
10

我正在構建一個相當簡單的應用程序,它執行幾個獨立的HTTPWebRequests,每個都在自己的計時器上。我不太可能需要一次運行超過3個獨立的請求。要線程或不線程

如果一個Timer Ticker在另一個HTTPWebRequest正在進行時觸發,Timer Tick觸發的事件會發生什麼?我應該添加線程嗎?

+1

取決於你使用你的計時器已經可能有多線程(肯定) - 在任何情況下,你可以有一個以上的HTTP請求(取決於系統設置 - 我認爲它是8或什麼的) – Carsten 2012-03-13 22:23:08

+0

有你想過使異步HttpWebRequest的?所有的好處沒有所有的線程頭痛。 – 2012-03-13 22:37:35

回答

6

答案几乎總是 - 不,不要僅僅因爲可以使用線程。

考慮先製作異步調用,因爲它更容易編寫正確的代碼。如果您需要更多參數,則可能會更有效地使用資源(因爲線程不是無限資源)。

鏈接:

+0

同意。特別是在C#5.0中,異步調用非常輕鬆。 – 2012-03-13 22:38:57

+0

長/懸掛Async調用會阻止UI嗎? – 2012-03-14 00:22:55

+0

不,調用返回「立即」,只有在收到/超時響應之前,您的回調/事件處理程序纔會被調用。你已經在爲Timer事件做「異步處理」,異步HttpRequest會很相似。 – 2012-03-14 00:43:25

1

Timer.Tick火災它的處理程序將被安排在線程池的執行力和最有可能的,在另一個線程中執行。