Análisis de datos asíncrono con límite de concurrencia
C#
Hard
async
Tarea «Análisis de datos asíncrono con límite de concurrencia»
Desarrolle una aplicación de consola asíncrona que lea desde stdin un número N, luego N líneas, cada línea contiene un número entero. La aplicación debe procesar cada número utilizando la función asíncrona SimulateWorkAsync(int value), que simula un retardo (value ms) y devuelve el cuadrado del número. Es necesario limitar el número máximo de tareas simultáneas a 3. Mostrar los resultados en el orden de finalización de las tareas (no en el orden de entrada). Si alguna tarea finaliza con una excepción (por ejemplo, cuando value < 0), la aplicación debe esperar a que finalicen todas las tareas, mostrar "Error" y finalizar. Use SemaphoreSlim para gestionar la concurrencia.
Formato de entrada
La primera línea es un número entero N (1 ≤ N ≤ 100). Luego N líneas, cada una contiene un número entero de -10 a 10.
Formato de salida
Para cada resultado exitoso, muestre el cuadrado del número en una línea separada en el orden de finalización de las tareas. Si ocurre un error, muestre solo "Error".
Ejemplos
Ejemplo 1
ENTRADA
2
5
2
SALIDA
4
25
Ejemplo 2
ENTRADA
2
https://httpbin.org/status/200
https://httpbin.org/status/404
5000
SALIDA
Error
Ejemplo 3
ENTRADA
2
-1
4
SALIDA
Error
main.cs