我正在就分配给我的一个项目寻求建议,并希望了解它是如何“专业地”完成的,或者任何可以引导我走向正确方向的建议。
我有一个服务器部件,它接受来自客户端的命令并将字节流推送到串行端口。尽管多个客户端可以向该服务器发送命令,但我们的硬件一次只能处理一个命令。我的问题是在软件端排队。
我已经实现了一个Queue<T>
帮助类,它也将数据插入到一个 DataSet 中,其中包含:请求的客户端编号、消息数据(要写入串行端口的字节数组)和消息类型(命令描述)。它还将列出 DataGrid(在窗体上)中的队列命令。可能不是要走的路,但这是我唯一能想到的保留请求客户端和数据并在视觉上显示队列的方法。
我在哪里处理队列的处理?我考虑在自定义事件上处理它,如果 DataGrid 列表发生更改(添加/删除项目),则获取 DataSet 中的第一行数据并将其发送到串行端口。
非常感谢任何意见或建议。
谢谢。
编辑:我忘了补充一点,它也需要来自 SerialPort 的响应,以便从队列中删除当前执行的命令。