Fakd 'Ap
Fakd 'Ap

Reputation: 17

C# App is not responding when pressing button

my application is not responding when spamming a number generator button, I do not know what I am doing wrong. Number is being added at least when bigger than 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
            }
        }
    }

This is an example of the button which causes my whole program to stop responding, when button is being spammed, sometimes even after the first try it just stops,

Im using Visual Studio 2017, Winforms C#

Upvotes: 0

Views: 49

Answers (2)

Fakd 'Ap
Fakd 'Ap

Reputation: 17

Actually I've added 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;
        }
    }

and it works, looks like program wasn't able to exit the loop properly...

Upvotes: 0

John Velasquez
John Velasquez

Reputation: 3451

Yeah because IDNumber maybe less than at 9999 at any time, you don't have any handle conditions if IDNumber is less

better do it this way

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
        }
}

Upvotes: 1

Related Questions