Analyse asynchrone des données avec limitation du parallélisme
C#
Hard
async
Tâche «Analyse asynchrone des données avec limitation du parallélisme»
Développez une application console asynchrone qui lit depuis stdin un nombre N, puis N lignes, chaque ligne contenant un nombre entier. L'application doit traiter chaque nombre à l'aide de la fonction asynchrone SimulateWorkAsync(int value), qui simule un délai (value ms) et retourne le carré du nombre. Il est nécessaire de limiter le nombre maximum de tâches simultanées à 3. Afficher les résultats dans l'ordre d'achèvement des tâches (et non dans l'ordre de saisie). Si une tâche se termine avec une exception (par exemple, lorsque value < 0), l'application doit attendre la fin de toutes les tâches, afficher "Error" et se terminer. Utilisez SemaphoreSlim pour gérer le parallélisme.
Format d\ entrée
La première ligne est un entier N (1 ≤ N ≤ 100). Ensuite, N lignes, chacune contenant un nombre entier de -10 à 10.
Format de sortie
Pour chaque résultat réussi, affichez le carré du nombre sur une ligne séparée dans l'ordre d'achèvement des tâches. Si une erreur se produit, affichez uniquement "Error".
Exemples
Exemple 1
ENTRÉE
2
5
2
SORTIE
4
25
Exemple 2
ENTRÉE
2
https://httpbin.org/status/200
https://httpbin.org/status/404
5000
SORTIE
Error
Exemple 3
ENTRÉE
2
-1
4
SORTIE
Error
main.cs