如何在运行时创建队列?

时间:2011-11-08 11:26:46

标签: c# queue

我正在用C#编写一个应用程序。在这个应用程序中,我从不同的端口获取数据。在这里,我想创建一个名称等于portnumber的队列,只要新端口开始发送数据。我可以创建这样的队列吗?

3 个答案:

答案 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>>