异步数据分析和并发控制

C# Hard async

任务 «异步数据分析和并发控制»

开发一个异步控制台应用程序,从标准输入读取一个整数 N,然后读取 N 行,每行包含一个整数。应用程序应使用异步函数 SimulateWorkAsync(int value) 处理每个数字,该函数模拟延迟(value 毫秒)并返回数字的平方。必须将最大并发任务数限制为 3。按任务完成的顺序(而非输入顺序)输出结果。如果任何任务因异常而失败(例如,当 value < 0 时),应用程序应等待所有任务完成,然后输出 "Error" 并退出。使用 SemaphoreSlim 管理并发。

输入格式

第一行是一个整数 N (1 ≤ N ≤ 100)。然后是 N 行,每行包含一个从 -10 到 10 的整数。

输出格式

对于每个成功的结果,按任务完成的顺序在单独一行输出该数字的平方。如果发生错误,只输出 "Error"。

示例

示例 1

输入
2 5 2
输出
4 25

示例 2

输入
2 https://httpbin.org/status/200 https://httpbin.org/status/404 5000
输出
Error

示例 3

输入
2 -1 4
输出
Error
main.cs