C# 未排队的事件

C# 未排队的事件,c#,C#,我正在尝试处理多个按钮单击事件,以便使用Queue()逐个执行事件。不知何故,当我打印计数时,没有事件排队,我不知道为什么。代码如下 private void callBtn0_Click(object sender, EventArgs e) { Button btn = (Button)sender; if ((btn.Name == ("btn" + 0)) {

我正在尝试处理多个按钮单击事件,以便使用Queue()逐个执行事件。不知何故,当我打印计数时,没有事件排队,我不知道为什么。代码如下

        private void callBtn0_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            if ((btn.Name == ("btn" + 0))
            {
                buttonQueue.Enqueue(btn);
                closeDoors();
            }
            else if ((btn.Name == ("btn" + 1))
            {
                buttonQueue.Enqueue(btn);
                closeDoors();
            }
            while(buttonQueue.Count > 0)
            {
                buttonQueue.Dequeue();
                listBox.Items.Add("Number: " + buttonQueue.Count);
            }

您正在将刚刚添加的项从队列中退出,因此下一次调用
Count
返回零:

// add one item

while(buttonQueue.Count > 0) // Count is 1
{
    buttonQueue.Dequeue(); // remove one item
    listBox.Items.Add("Number: " + buttonQueue.Count); // Count is 0
}

您正在将刚刚添加的项从队列中退出,因此下一次调用
Count
返回零:

// add one item

while(buttonQueue.Count > 0) // Count is 1
{
    buttonQueue.Dequeue(); // remove one item
    listBox.Items.Add("Number: " + buttonQueue.Count); // Count is 0
}

您正在将刚刚添加的项从队列中退出,因此下一次调用
Count
返回零:

// add one item

while(buttonQueue.Count > 0) // Count is 1
{
    buttonQueue.Dequeue(); // remove one item
    listBox.Items.Add("Number: " + buttonQueue.Count); // Count is 0
}

您正在将刚刚添加的项从队列中退出,因此下一次调用
Count
返回零:

// add one item

while(buttonQueue.Count > 0) // Count is 1
{
    buttonQueue.Dequeue(); // remove one item
    listBox.Items.Add("Number: " + buttonQueue.Count); // Count is 0
}

在现有调用完成之前,无法执行对
callBtn0\u Click
的后续UI线程调用。根据您的代码,队列中只能有1个项目,您在添加该项目后立即将其退出队列


我建议您阅读有关UI线程和消息pump的内容,在现有调用完成之前,无法执行对
callBtn0\u Click
的后续UI线程调用。根据您的代码,队列中只能有1个项目,您在添加该项目后立即将其退出队列


我建议您阅读有关UI线程和消息pump的内容,在现有调用完成之前,无法执行对
callBtn0\u Click
的后续UI线程调用。根据您的代码,队列中只能有1个项目,您在添加该项目后立即将其退出队列


我建议您阅读有关UI线程和消息pump的内容,在现有调用完成之前,无法执行对
callBtn0\u Click
的后续UI线程调用。根据您的代码,队列中只能有1个项目,您在添加该项目后立即将其退出队列


我建议您阅读有关UI线程和消息泵的内容

您正在尝试排队的按钮或
闭门操作?如果您立即将某个东西排队,那么让它排队有什么意义?您正在尝试排队的按钮或
闭门操作是什么?如果让它排队,那么让它排队有什么意义立即?您正在尝试排队-按钮或
closeDoors
操作?如果您立即将某个东西排队,那么排队的意义是什么?您正在尝试排队-按钮或
closeDoors
操作?如果您立即将某个东西排队,那么排队的意义是什么?我正在排队调用方法关闭的按钮两层楼的门。我是一个新手,仍在努力解决问题。@user3034845很明显,当按钮被单击时,您想将其排队,但当您想从队列中删除按钮时?我正在排队的按钮调用一种方法来关闭两个不同楼层的门。我是一个新手,仍在努力解决问题。@user3034845很明显,当按钮被单击时,您想将其排队,但当您想从队列中删除按钮时?我正在排队的按钮调用一种方法来关闭两个不同楼层的门。我是一个新手,仍在努力解决问题。@user3034845很明显,当按钮被单击时,您想将其排队,但当您想从队列中删除按钮时?我正在排队的按钮调用一种方法来关闭两个不同楼层的门。我是一个新手,仍在努力解决问题。@user3034845很明显,当按钮被单击时,您想将其排队,但当您想从队列中删除按钮时?