Timeout en C#: Guía Completa

Introducción: evitar esperas infinitas

Timeout define límite máximo para operación. Llamas API, esperas. Sin timeout: esperas para siempre si API cuelga. Con timeout 2s: si no responde en 2s, falla, intentas fallback o reintentas. Evita cascada: si una API lenta bloquea todos los threads, tu servicio se congela. Timeout mata la operación, libera el thread, puedes servir otros requests. Imperative para cualquier I/O (network, disk, DB). HttpClient por defecto tiene timeout. Configure según latency esperada: APIs rápidas 100-500ms, APIs lentas 5-10s. Timeout es defensa contra fallos: API muere, timeout lo atrapa antes de afectar cascadamente.

Timeout
Prompt: hourglass with network request, minimal style.

1. Naturaleza: instinto de escape

Los animales abandonan un intento si el riesgo crece demasiado.

Escape
Prompt: animal stopping pursuit, soft illustration.

2. Mundo Real: llamadas externas

Un servicio detiene peticiones a un API si tardan más de 2 segundos.

API lenta
Prompt: slow API request timeout, flat infographic.

3. Implementación en C#: Código Paso a Paso

using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(2));
var response = await http.GetAsync(url, cts.Token);

Combina timeout con retry y circuit breaker para resiliencia completa.

4. Timeout vs Cancelación manual

Timeout es automático y consistente; la cancelación manual depende del llamador.

5. Diagrama UML

UML Timeout
Prompt: UML timeout pattern, clean vector.
Flow Timeout
Prompt: timeout flow diagram, minimal infographic.

⚠️ Cuándo NO Usar Timeout

  • Si la operación es local y rápida.
  • Si el timeout es tan alto que no aporta control.

💪 Ejercicio

Define timeouts distintos para lectura y escritura en un servicio HTTP.

Conclusión

Timeout es un límite simple pero esencial para evitar bloqueos.