Нужно добавить задержку в цикле for - PullRequest
0 голосов
/ 22 июня 2019

Так что мне нужно добавить задержку в цикл for, так как это происходит слишком долго после идентификатора, например, задержка составляет около 1 секунды

Я пробовал Threading.Thread.Sleep (), но просто задерживает всеформа с открытием

        For Movement As Integer = 1 To 100
            Invader.SizeMode = PictureBoxSizeMode.StretchImage
            Invader.Width = 53
            Invader.Height = 42
            Invader.Top = 50
            Invader.Left = 50
            Invader.ImageLocation = "D:\.Visual Studio\SSD game\Resources\Invader.png"
            Me.Controls.Add(Invader)
            Invader.Location = New Point(12, 12)
        Next
        Timer1.Enabled = True

1 Ответ

0 голосов
/ 22 июня 2019

Асинхронно вызывается функция задержки из вашего цикла, которая должна быть в методе.Смотрите ниже код:


Public Async Sub YourLoopThatWorksAsync()
        For Movement As Integer = 1 To 100
            Invader.SizeMode = PictureBoxSizeMode.StretchImage
            Invader.Width = 53
            Invader.Height = 42
            Invader.Top = 50
            Invader.Left = 50
            Invader.ImageLocation = "D:\.Visual Studio\SSD game\Resources\Invader.png"
            Me.Controls.Add(Invader)
            Invader.Location = New Point(12, 12)

            Dim result as integer = Await ResponsiveSleep()
        Next

End Sub

Public Async Function ResponsiveSleep() As Task(Of Integer)
    Await Task.Delay(1000)  ' 1000ms = 1 sec
    return 1
End Function
...