【发布时间】:2011-03-22 18:28:43
【问题描述】:
我正在就分配给我的一个项目寻求建议,并希望了解它是如何“专业地”完成的,或者任何可以引导我走向正确方向的建议。
我有一个服务器部件,它接受来自客户端的命令并将字节流推送到串行端口。尽管多个客户端可以向该服务器发送命令,但我们的硬件一次只能处理一个命令。我的问题是在软件端排队。
我已经实现了一个Queue<T> 帮助器类,它还将数据插入到一个DataSet 中,其中包含:请求的客户端编号、消息数据(要写入串行端口的字节数组)和消息类型(命令描述)。它还将列出 DataGrid(在窗体上)中的队列命令。可能不是要走的路,但这是我唯一能想到的保留请求客户端和数据并在视觉上显示队列的方法。
我在哪里处理队列?我考虑在自定义事件上处理它,如果 DataGrid 列表发生更改(添加/删除项目),则获取 DataSet 中的第一行数据并将其发送到串行端口。
非常感谢任何 cmets 或建议。
谢谢。
编辑:我忘了补充说它确实需要来自 SerialPort 的响应,以便从队列中删除当前执行的命令。
【问题讨论】:
-
如果您接受来自客户端的数据,您肯定不想从服务器的数据网格中修改/输入它吗?响应一个新的数据网格项目听起来不是一个糟糕的起点
-
你为什么要实现 Queue
类?它已经为你准备好了。 -
@Jon Cage:我只是使用 DataGrid 来显示队列列表(谁的命令是下一个)。
-
@user177883:我实现了一个帮助器类,当我将一个项目排入队列时,它还将来自客户端的数据插入到数据集中。
标签: c# queue fifo task-queue