c#题例-2025-09-01 17:00:15
日期: 2025-09-01 分类: AI写作 11次阅读
编写一个C#程序,模拟一个任务调度系统,满足以下条件:
1. 系统中有一组任务(Task),每个任务有唯一的ID(Guid)、名称(string)和执行时间(int,单位为毫秒)。
2. 任务分为两类:**独立任务**和**依赖任务**。依赖任务必须在其所依赖的任务完成后才能执行。
3. 系统支持并发执行多个独立任务,但同一时间最多运行3个并发任务。
4. 所有任务一旦开始执行,必须完整运行完其执行时间,不可中断。
5. 程序需输出每个任务的开始时间和结束时间(格式:任务ID - 开始时间(ms) - 结束时间(ms))。
6. 实现一个调度器类 `TaskScheduler`,包含以下方法:
```csharp
void AddTask(Task task);
void Start();
```
要求:
- 使用线程池或异步编程模型实现并发控制。
- 避免使用 `async/await`。
- 实现依赖任务的等待机制。
- 确保并发数量不超过限制。
- 使用合适的线程同步机制(如信号量、锁、事件等)保证线程安全。
请在程序中提供一个测试用例,包含以下任务结构:
- TaskA(独立,500ms)
- TaskB(独立,300ms)
- TaskC(依赖TaskA和TaskB,400ms)
- TaskD(独立,200ms)
- TaskE(依赖TaskC和TaskD,100ms)
输出示例(时间仅供参考):
```
TaskA - 0 - 500
TaskB - 0 - 300
TaskD - 0 - 200
TaskC - 500 - 900
TaskE - 900 - 1000
```
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:AI写作
精华推荐