C# 同步执行伴随异步执行

jiaoshiyao 2015-10-13 01:31:55
由于不太会表述,标题大家将就着看。
我的问题是 舵机控制 软件
1、由于舵机控制串口时而不稳定 所以 每条命令之间 需要间隔 30毫秒 否则 就出错 出错 就会停止2分钟 运行很麻烦
2、既然需要间隔30毫秒了 那么 这个舵机软件有多个地方可以控制他 例如 键盘 例如自动控制软件
而且两者 可以同时操作
那么问题来了 用户 狂按键盘 则有可能导致 异常 即使 限制用户按的频率 但是 自动控制软件和键盘的按键 也可能冲突
隐形的冲突 就是 两个命令间隔在30毫秒内 则可能报错

这样的问题 怎么解决
...全文
357 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaoshiyao 2015-10-13
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
同一功能“只写一次”,只调用一个method。

所谓“两个命令间隔在30毫秒内 则可能报错”,这显然是没有搞明白2和1的区别。

串口设备有问题,缺陷问题
  • 打赏
  • 举报
回复
跟队列没有直接关系,队列也不过是通过形式上的各种东东而绕到了这个终点。
  • 打赏
  • 举报
回复
同一功能“只写一次”,只调用一个method。

所谓“两个命令间隔在30毫秒内 则可能报错”,这显然是没有搞明白2和1的区别。
jiaoshiyao 2015-10-13
  • 打赏
  • 举报
回复
引用 1 楼 wyd1520 的回复:
1.你在下发一条命令后,直到收到串口回传的状态,再下发另一条。
2.如果串口没有回状态的功能,那你就用一个队列。你把所有的命令都放到队列中去,然后有个计时器去执行这个队列,隔30毫秒发一条。

队列的可以。
jiaoshiyao 2015-10-13
  • 打赏
  • 举报
回复
引用 1 楼 wyd1520 的回复:
1.你在下发一条命令后,直到收到串口回传的状态,再下发另一条。
2.如果串口没有回状态的功能,那你就用一个队列。你把所有的命令都放到队列中去,然后有个计时器去执行这个队列,隔30毫秒发一条。

队列 可以用一用
本拉灯 2015-10-13
  • 打赏
  • 举报
回复
1.你在下发一条命令后,直到收到串口回传的状态,再下发另一条。
2.如果串口没有回状态的功能,那你就用一个队列。你把所有的命令都放到队列中去,然后有个计时器去执行这个队列,隔30毫秒发一条。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧