c#题例-2025-08-30 06:59:45
日期: 2025-08-30 分类: AI写作 26次阅读
编写一个C#程序,模拟一个简单的任务调度系统,满足以下要求:
1. 系统中包含三种类型的任务:
- **即时任务**(Immediate):必须按提交顺序立即执行,不能被打断。
- **延时任务**(Delayed):在提交后至少等待指定毫秒数才能执行。
- **周期任务**(Periodic):首次执行需在指定延迟后,之后每隔固定时间重复执行。
2. 所有任务都通过一个共享的后台线程顺序执行(即任务是串行执行的,不是并行的)。
3. 系统应保证:
- 即时任务执行时不被其他任务中断。
- 延时和周期任务之间不能干扰即时任务的执行顺序。
4. 提供一个接口 `ITaskScheduler`,包含如下方法:
- `void ScheduleImmediate(Action task)`
- `void ScheduleDelayed(Action task, int delayMs)`
- `void SchedulePeriodic(Action task, int initialDelayMs, int periodMs)`
- `void Shutdown()`:等待所有已提交任务执行完毕后关闭调度器。
5. 实现需考虑时间精度、资源占用、任务执行异常处理等生产级细节。
请设计并实现该调度系统,并编写测试代码验证其正确性。
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:AI写作
精华推荐