我需要将一行代码的执行延迟5秒。但是通过做

System.Threading.Thread.Sleep(5000)

整个UI都挂起了,我不希望这种情况发生。因为我希望能够在窗口中显示用户可以看到的东西。有人知道实现此目标的替代方法吗?

谢谢!

最佳答案

使用可以使用5秒钟后执行一次的计时器。在WPF中,通常将使用DispatcherTimer

dispatcherTimer = New Threading.DispatcherTimer()
AddHandler dispatcherTimer.Tick, AddressOf dispatcherTimer_Tick
dispatcherTimer.Interval = New TimeSpan(0,0,5)
dispatcherTimer.Start()

Private Sub dispatcherTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)
  dispatcherTimer.Stop();
  '' Your code to be executed after 5 seconds
End Sub

关于wpf - VB.NET中的延迟执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9374724/

10-10 07:24