Dot-Net
不阻塞 UI 執行緒的同步等待
是否存在不會佔用 .NET WPF 中的 UI 執行緒的同步等待功能?就像是:
Sub OnClick(sender As Object, e As MouseEventArgs) Handles button1.Click Wait(2000) 'Ui still processes other events here MessageBox.Show("Is has been 2 seconds since you clicked the button!") End Sub
您可以將 a
DispatcherTimer用於此類事情。**編輯:**這也可以…
private void Wait(double seconds) { var frame = new DispatcherFrame(); new Thread((ThreadStart)(() => { Thread.Sleep(TimeSpan.FromSeconds(seconds)); frame.Continue = false; })).Start(); Dispatcher.PushFrame(frame); }從 .NET 4.5 開始,您可以使用
async事件處理程序並Task.Delay獲得相同的行為。在這樣的處理程序返回期間簡單地讓 UI 更新Dispatcher.Yield。