如何在UI上打印,然后在Windows手机应用程序的同一点击事件中让UI线程等待某个时间
本文关键字:UI 事件 一点 等待 时间 线程 然后 打印 Windows 手机 应用程序 | 更新日期: 2023-09-27 18:06:09
我有一个情况,我需要在textbox1中打印一些东西,然后等待一秒钟,使图像可见,然后再次等待一秒钟,然后在一个按钮单击中在textbox2中打印一些东西。当我在按钮的Click事件中打印textbox1后写了一个sleep。我看到UI上的打印是一次完成的,也就是说,我希望它是一个接一个的顺序完成,但由于它是一个单一的事件处理,它一直等到结束,并在最后一次显示在UI上。
我不知道它是否像Windows phone 8一样工作,但是你可以"sleep"使方法异步并调用
await Task.Delay(1000);
public async void myMethod(){
printString1();
await Task.Delay(1000);
showImage();
await Task.Delay(1000);
printString2();
}
您可以将代码放在线程中,并在需要更新UI时使用分派器:
private void Process()
{
this.Dispatcher.BeginInvoke(() => this.TextBox1.Text = "Hello");
Thread.Sleep(1000);
this.Dispatcher.BeginInvoke(() => this.Picture1.Visibility = Visibility.Visible);
Thread.Sleep(1000);
this.Dispatcher.BeginInvoke(() => this.TextBox2.Text = "World");
}
然后,启动线程(当用户点击按钮时):
var thread = new Thread(this.Process);
thread.Start();