如何在UI上打印,然后在Windows手机应用程序的同一点击事件中让UI线程等待某个时间

本文关键字:UI 事件 一点 等待 时间 线程 然后 打印 Windows 手机 应用程序 | 更新日期: 2023-09-27 18:06:09

我有一个情况,我需要在textbox1中打印一些东西,然后等待一秒钟,使图像可见,然后再次等待一秒钟,然后在一个按钮单击中在textbox2中打印一些东西。当我在按钮的Click事件中打印textbox1后写了一个sleep。我看到UI上的打印是一次完成的,也就是说,我希望它是一个接一个的顺序完成,但由于它是一个单一的事件处理,它一直等到结束,并在最后一次显示在UI上。

如何在UI上打印,然后在Windows手机应用程序的同一点击事件中让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();