2013-03-26 23 views
0

我有一种情况,我需要在textbox1中打印某些内容,然后等待一秒钟,使图像可见,然后再等一秒钟,然后在一个按钮中单击文本框2中的内容。当我在按钮的Click事件中在textbox1中打印后编写睡眠时。我发现用户界面上的打印一次完成,也就是说,我预计它会一个接一个地按顺序进行,但由于它的单个事件句柄会一直等到最后显示在UI上到底。如何在用户界面上打印,然后使用户界面线程在Windows手机应用程序中的相同点击事件中等待某个时间

回答

0

我不知道,如果它的工作就像为Windows 8的手机,但你可以“休眠”的制作方法异步并呼吁

await Task.Delay(1000); 


public async void myMethod(){ 
    printString1(); 
    await Task.Delay(1000); 
    showImage(); 
    await Task.Delay(1000); 
    printString2(); 
} 
+0

谢谢你很多,这也适用于Windows Phone 8 :) – AdCan 2013-03-28 06:28:10

+0

Task.Delay()与Thread.Sleep有什么不同? – AdCan 2013-03-28 07:02:56

+0

好吧,我会说延迟是异步的,而睡眠是同步的 – 2013-03-28 22:18:52

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(); 
相关问题