如何在运行时创建队列
本文关键字:创建 队列 运行时 | 更新日期: 2023-09-27 18:14:02
我正在用c#编写一个应用程序。在这个应用程序中,我从不同的端口获取数据。这里,我想创建一个队列,每当新端口开始发送数据时,队列的名称等于端口号。我可以创建这样一个队列吗?
我建议创建一个Dictionary<int, Queue>
并使用端口号作为索引。
如果您想要为每个正在使用的端口创建一个接收数据队列,那么您最好有一个队列的键集。这些队列将通过端口号进行键控。所以可以用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);
}
可以创建Queue<KeyValuePair<int, object>>