我使用带有串行函数的 C# 类将我的应用程序连接到 CNC 机床 - 该项目是一个 MDI。
串行函数由不同的子窗体调用(其中有 5 个)。
在为处理连接而创建的另一个类中,我将创建一个 FIFO 队列来管理来自子表单的请求。
子窗体将通过套接字与连接类通信。这是个好主意吗?
如果没有,有没有其他方法可以做到这一点?
我在这种模式下思考:
private struct s_fifoObj
{
public int priority; //Priority of serial command
public DateTime data; // Date of command
public string from; // That form send the comand
public string cmd; // the command (request)
public int status; // status of command
}
private Queue<s_fifoObj> q_fifoObj;
是否有理由使用套接字在子窗体和连接处理程序之间进行通信?可以在父 MDI 窗口中创建连接处理程序的实例,然后将其传递到子窗口构造函数中。或者,您可以将连接处理程序设置为单一实例
您需要排队吗?如果您的应用程序是单线程的,则不需要队列。如果您使用多个线程/任务或使用异步函数,那么FIFO将起作用,但请务必确保System.Collections.Concurrent中的ConcurrentQueue或其他线程安全的内容。