I suggest making this event handler async
and using await Task.Delay()
instead Thread.Sleep()
:
private async void Game_Screen_KeyDown(object sender, KeyEventArgs e)
{
for (int i = 0; i < 500; i++)
{
if (e.KeyCode == Keys.Left)
{
cannonBox.Location = new Point(cannonBox.Left - 2, cannonBox.Top);
await Task.Delay(10);
}
if (e.KeyCode == Keys.Right)
{
cannonBox.Location = new Point(cannonBox.Left + 2, cannonBox.Top);
await Task.Delay(10);
}
if (e.KeyCode == Keys.Up)
{
createLaser();
}
}
}
, , ( Application.DoEvents()
). , () 10 , .
, , , , . , . , ( , ).
, . "" (, ).
, , async
Task
.