我正在用C#编写一个应用程序。在这个应用程序中,我从不同的端口获取数据。在这里,我想创建一个名称等于portnumber的队列,只要新端口开始发送数据。我可以创建这样的队列吗?
答案 0 :(得分:5)
我建议创建Dictionary<int, Queue>
并使用端口号作为索引。
答案 1 :(得分:1)
如果您的意思是要为正在使用的每个端口创建接收数据的队列,那么您最好拥有一个键控的队列集合。这些队列将由端口号键入。所以也许使用Dictionary<int, Queue<Data>>
。然后,当请求进入时,您可以检查端口是否已有队列;如果是这样,添加到该队列;如果没有,请创建队列。即。
private Dictionary<int, Queue<Data>> mPortQueues = new Dictionary<int, Queue<Data>>();
public void ReceiveData(int portNumber, Data data)
{
Queue<Data> queue;
// See if we have a queue
if (!mPortQueues.TryGetValue(portNumber, out queue))
{
// No queue for this port, so create and cache
queue = new Queue<Data>();
mPortQueues.Add(portNumber, queue);
}
// Queue the data
queue.Enqueue(data);
}
答案 2 :(得分:0)
您可以创建Queue<KeyValuePair<int, object>>