2012-03-13 10 views
10

Estoy construyendo una aplicación bastante simple que realiza unas pocas HTTPWebRequests por separado, cada una en su propio temporizador. No es probable que necesite tener más de 3 solicitudes separadas al mismo tiempo.Para enhebrar o no para enhebrar

Si se activa un Ticker Ticker mientras otro HTTPWebRequest está en progreso, ¿qué ocurre con el evento disparado por el Ticker Tick? ¿Debo agregar Threading?

+1

dependiendo del temporizador que utilice, es posible que ya tenga multiprocesamiento (sin duda); en cualquier caso, puede tener más de una solicitud HTTP a la vez (depende de la configuración del sistema, creo que es 8 o algo así) – Carsten

+0

¿Pensaste en hacer async HttpWebRequest's? Todo el beneficio sin todo el dolor de cabeza de los hilos. –

Respuesta

6

La respuesta es casi siempre: no, no use hilos solo porque puede.

Considere hacer primero las llamadas asíncronas, ya que es más fácil escribir el código correcto. Es probable un uso más eficiente de los recursos (ya que los hilos no son recursos ilimitados) si necesita argumentos adicionales.

Enlaces:

+0

De acuerdo. Especialmente con C# 5.0, las llamadas asincrónicas son muy fáciles. –

+0

¿Una llamada asincrónica larga/suspendida bloquearía la interfaz de usuario? –

+0

No, la llamada vuelve "inmediatamente" y su manejador de devolución de llamada/evento simplemente no se invocará hasta que se reciba o se agote el tiempo de respuesta. Ya está haciendo un "procesamiento asíncrono" para eventos de temporizador, async HttpRequest sería similar. –

1

Cuando Timer.Tick incendios Es manejador será programado para la ejecución de subprocesos y lo más probable, ejecutados en otro hilo .

Cuestiones relacionadas