2012-03-13 43 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火灾它的处理程序将被安排在线程池的执行力和最有可能的,在另一个线程中执行。