我使用带有串行功能的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;
答案 0 :(得分:1)
您是否有理由使用套接字来连接子表单和连接处理程序之间的通信?您可以在父MDI窗口中创建连接处理程序的实例,然后将其传递给子窗口构造函数。或者,您可以将连接处理程序设为singleton
你需要队列吗?如果您的应用程序是单线程的,那么您不需要队列。如果您使用多个线程/任务或使用异步函数,那么FIFO将起作用,但一定要确保System.Collections.Concurrent中的ConcurrentQueue或其他线程安全的东西。