c# - 线程、任务、状态,需要帮助选择正确的
问题描述
我需要一些帮助来选择正确的工具。我正在用树莓派替换控制一些泵的硬件控制器,并在 c# .netcore 中为其编写代码。泵应按特定顺序运行并持续特定的持续时间。通过所有可能的方法来实现这一点,我正在寻找最干净和有趣的方法。
泵应执行以下操作:
- 打开泵 1
- 等待 15 秒
- 打开泵 2
- 等待 10 分钟
- 打开泵 3
- 让泵 3 运行 20 分钟
- 关闭泵 3
- 等待 10 分钟
- 关闭泵 2
- 等待 15 秒
- 关闭泵 1
我查看了计时器、线程、任务、状态机,但我很难为这项工作选择合适的工具。在任何时候,我还需要能够立即停止所有泵。
谢谢你的帮助。
解决方案
我可能会带着任务去。
public async Task Execute()
{
await TurnOnPump1();
await Task.Delay(TimeSpan.FromSeconds(15));
await TurnOnPump2();
await Task.Delay(TimeSpan.FromMinutes(10));
await TurnOnPump3();
//And so on..
}
推荐阅读
- reactjs - 在 setupFiles 中设置时,Jest setSystemTime 不适用于测试
- c# - 如何在我的 c# 中读取 XSD 数据并打印到控制台?并且有带有 Schemalocation 的导入标签,那么我如何在 c# 中导入它呢?
- python - 使用 Python 和/或 SSIS 的数据集成结构
- sql-server - T-SQL 在 BEGIN CATCH 中插入
- java - 如何在 JBoss EAP 7 中查看 Apache Camel Route 源代码?
- php - 如何从重命名或非默认文件夹运行测试?
- python - 使用 Pycharm 安装 cvxpy 包时如何解决错误
- unity3d - 与计时器一起使用时,2D 实例化对象停止移动
- scala - for 理解中的模式匹配分配如何转化为一元操作?
- angular - 在 Angular 的新选项卡中打开 PDF