0

我有一种情况,我需要在 textbox1 中打印一些东西,然后等待一秒钟,使图像可见,然后再次等待一秒钟,然后单击一个按钮在 textbox2 中打印一些东西。当我在按钮的 Click 事件中在 textbox1 中打印后写了一个睡眠。我看到 UI 上的打印是一次完成的,即我希望它在暂停的情况下一个接一个地按顺序完成,但由于它是一个事件句柄,它一直等到结束并一次全部显示在 UI 上到底。

4

2 回答 2

0

我不知道它是否像 Windows phone 8 一样工作,但你可以“睡觉”使方法异步并调用

await Task.Delay(1000);


public async void myMethod(){
    printString1();
    await Task.Delay(1000);
    showImage();
    await Task.Delay(1000);
    printString2();
}
于 2013-03-26T14:48:41.003 回答
0

您可以将代码放在一个线程中,并在需要更新 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();
于 2013-03-26T15:58:35.037 回答