按下按钮时C#App没有响应

时间:2018-04-24 05:34:51

标签: button freeze

我的应用程序没有响应垃圾邮件数字生成器按钮,我不知道我做错了什么。 至少在大于9999时添加数字。

        private void button17_Click_1(object sender, EventArgs e)
    {
        byte[] buffer = Guid.NewGuid().ToByteArray();
        var FormNumber = BitConverter.ToUInt16(buffer, 0);
        int IDNumber = FormNumber;
        for (; ; )
        {
            if (IDNumber > 9999)
            {
                listBox1.Items.Add(FormNumber);
                break;
            }
            else
            {
                //repeat
            }
        }
    }

这是一个按钮的示例,它导致我的整个程序停止响应,当按钮被发送垃圾邮件时,有时甚至在第一次尝试之后它就停止了,

我正在使用Visual Studio 2017,Winforms C#

2 个答案:

答案 0 :(得分:1)

是的,因为IDNumber可能在任何时候都小于9999,如果IDNumber较少,则没有任何处理条件

最好这样做

for (; ; )
{
    byte[] buffer = Guid.NewGuid().ToByteArray();
    var FormNumber = BitConverter.ToUInt16(buffer, 0);
    int IDNumber = FormNumber;
        if (IDNumber > 9999)
        {
            listBox1.Items.Add(FormNumber);
            break;
        }
        else
        {
            //repeat
        }
}

答案 1 :(得分:0)

其实我添加了return

    private void button17_Click_1(object sender, EventArgs e)
    {
        byte[] buffer = Guid.NewGuid().ToByteArray();
        var FormNumber = BitConverter.ToUInt16(buffer, 0);
        int IDNumber = FormNumber;
        for (; ; )
        {
            if (IDNumber > 9999)
            {
                listBox1.Items.Add(FormNumber);
                break;
            }
            else
            {
                //repeat
            }
            return;
        }
    }

并且它有效,看起来程序无法正常退出循环...