我正在构建一个相当简单的应用程序,它执行几个独立的HTTPWebRequests,每个都在自己的计时器上。我不太可能需要一次运行超过3个独立的请求。要线程或不线程
如果一个Timer Ticker在另一个HTTPWebRequest正在进行时触发,Timer Tick触发的事件会发生什么?我应该添加线程吗?
我正在构建一个相当简单的应用程序,它执行几个独立的HTTPWebRequests,每个都在自己的计时器上。我不太可能需要一次运行超过3个独立的请求。要线程或不线程
如果一个Timer Ticker在另一个HTTPWebRequest正在进行时触发,Timer Tick触发的事件会发生什么?我应该添加线程吗?
答案几乎总是 - 不,不要仅仅因为可以使用线程。
考虑先制作异步调用,因为它更容易编写正确的代码。如果您需要更多参数,则可能会更有效地使用资源(因为线程不是无限资源)。
链接:
同意。特别是在C#5.0中,异步调用非常轻松。 – 2012-03-13 22:38:57
长/悬挂Async调用会阻止UI吗? – 2012-03-14 00:22:55
不,调用返回“立即”,只有在收到/超时响应之前,您的回调/事件处理程序才会被调用。你已经在为Timer事件做“异步处理”,异步HttpRequest会很相似。 – 2012-03-14 00:43:25
当Timer.Tick
火灾它的处理程序将被安排在线程池的执行力和最有可能的,在另一个线程中执行。
取决于你使用你的计时器已经可能有多线程(肯定) - 在任何情况下,你可以有一个以上的HTTP请求(取决于系统设置 - 我认为它是8或什么的) – Carsten 2012-03-13 22:23:08
有你想过使异步HttpWebRequest的?所有的好处没有所有的线程头痛。 – 2012-03-13 22:37:35