Reputation: 17
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
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
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