【发布时间】:2016-09-12 08:57:41
【问题描述】:
我正在编写一个与我设计的一些控制硬件进行通信的程序。硬件正在驱动电机,我尝试用它做的第一件事是初始化电机。 硬件是通信控制的,所以我只需通过 USB 向硬件发送一条消息即可。 要初始化电机,我必须发送 2 条消息;在我发送第一个之后,它会将电机移向传感器,当它到达它时它会停止并向我发送一条消息,告诉我它已经停止,此时我向它发送另一条消息,告诉它驱动电机相反的方向非常缓慢,直到它从传感器中出来。
我所有的通讯接收都在 SerialPort DataReceived 事件中。我可以等待相关消息然后发送第二条消息的最佳方式是什么?目前我只是使用 bool 类型的属性,在初始化之前我将其设置为 true,然后在我的事件处理程序中,如果我收到消息告诉我电机已停止并且 bool 为真,我设置 bool为假并发送第二条消息。虽然这可行,但我在想可能可以使用异步和等待?总的来说,这可能会更有效率吗?还是我可以采取另一种更好的方法?
任何反馈/指导将不胜感激!
【问题讨论】:
-
距离不够近,不能被称为重复,但您可能想看看我为 for a similar answer 设计的一个类,该类将对 SeralPort 的请求排队并异步等待响应。跨度>
-
谢谢你,非常有用!我会看看我是否可以调整和实现类似的东西,但我不能使用你提出的确切答案,因为我确实需要事件来处理消息的接收。
标签: c# asynchronous serial-port async-await