C# 如何在运行时创建队列?

C# 如何在运行时创建队列?,c#,queue,C#,Queue,我正在用C#写一份申请书。在这个应用程序中,我从不同的端口获取数据。在这里,每当一个新端口开始发送数据时,我想创建一个名称等于端口号的队列。我可以创建这样一个队列吗?我建议创建一个字典并使用端口号作为索引。我建议创建一个字典并使用端口号作为索引。您可以创建一个队列如果您的意思是要为每个队列创建一个接收数据的队列如果您使用的是一个端口,那么您最好拥有一个密钥化的队列集合。这些队列将由端口号键入。因此,或许可以使用字典。然后,当请求传入时,您可以检查端口是否已经有队列;如果是,则添加到该队列中;如果

我正在用C#写一份申请书。在这个应用程序中,我从不同的端口获取数据。在这里,每当一个新端口开始发送数据时,我想创建一个名称等于端口号的队列。我可以创建这样一个队列吗?

我建议创建一个
字典
并使用端口号作为索引。

我建议创建一个
字典
并使用端口号作为索引。

您可以创建一个
队列
如果您的意思是要为每个队列创建一个接收数据的队列如果您使用的是一个端口,那么您最好拥有一个密钥化的队列集合。这些队列将由端口号键入。因此,或许可以使用
字典
。然后,当请求传入时,您可以检查端口是否已经有队列;如果是,则添加到该队列中;如果不是,则创建队列。i、 e

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);
}
private Dictionary mPortQueues=new Dictionary();
公共无效接收数据(int端口号、数据)
{
排队;
//看看有没有人排队
if(!mPortQueues.TryGetValue(端口号,输出队列))
{
//此端口没有队列,因此创建并缓存
队列=新队列();
添加(端口号,队列);
}
//将数据排队
排队(数据);
}

如果您的意思是要为正在使用的每个端口创建一个接收数据队列,那么最好使用一个键控队列集合。这些队列将由端口号键入。因此,或许可以使用
字典
。然后,当请求传入时,您可以检查端口是否已经有队列;如果是,则添加到该队列中;如果不是,则创建队列。i、 e

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);
}
private Dictionary mPortQueues=new Dictionary();
公共无效接收数据(int端口号、数据)
{
排队;
//看看有没有人排队
if(!mPortQueues.TryGetValue(端口号,输出队列))
{
//此端口没有队列,因此创建并缓存
队列=新队列();
添加(端口号,队列);
}
//将数据排队
排队(数据);
}

您将如何从其余代码中查找(使用)这些端口?在该队列中,我想添加从该端口获取的数据以供进一步处理。您将如何查找(使用)您代码其余部分中的那些端口?在该队列中,我想添加从该端口获取的数据以供进一步处理。我想从一端向队列中添加数据,从另一端使用。是否可以使用字典?您使用字典只是为了访问队列。然后,您可以从队列的一侧添加数据并从另一侧加载。我想从队列的一侧添加数据并从另一侧使用。是否可以使用字典?您使用字典只是为了访问队列。然后,您可以从队列的一侧添加数据并从另一侧加载。在这里,我可以创建队列并将其与端口号一起添加到字典中。但是,如果我想在另一个进程中将数据添加到相应端口号的队列中,那么我必须如何做?意味着我编写了另一个方法,在该方法中,我将数据写入相应的端口号队列。我不完全确定您的意图,但如果您希望在两个地方(例如,两个程序)之间共享接收到的数据,那么您最好设置一个处理此队列系统的共享服务;这两个程序都可以请求队列信息。在这里,我可以创建队列,并将其与端口号一起添加到字典中。但是,如果我想在另一个进程中将数据添加到相应端口号的队列中,那么我该怎么办?这意味着我编写了另一个方法,将数据写入相应的队列。我不完全确定您的意图是什么,但是如果您希望在两个地方(例如两个程序)之间共享接收到的数据,那么您最好设置一个处理此队列系统的共享服务;这两个程序都可以请求队列信息。我不认为这正是他们想要的,因为他们的访问是通过端口而不是顺序的。我不认为这正是他们想要的,因为他们的访问是通过端口而不是顺序的