WP7 Popup在thread.sleep之前显示但直到之后才出现

时间:2010-12-22 01:26:46

标签: c# silverlight xaml windows-phone-7 popup

我目前正在使用Thread.Sleep(2500)来模拟模拟层中的网络调用,直到我们可以连接到Web服务。我基于this example创建了一个带有进度条的弹出窗口(是的,我使用的是Jeff Wilcox的进度条),并且弹出窗口已成功显示。但是,我遇到一个问题,当我在使用Thread.Sleep()之后调用它时,弹出窗口没有加载。直到Thread.Sleep()返回后才会出现进度条。我正在努力让这个工作用于即将到来的演示,所以我想弄清楚如何使用Thread.Sleep()而不是等待服务并希望它在那里工作。

1 个答案:

答案 0 :(得分:4)

您的Thread.Sleep正在暂停UI线程,这会阻止弹出窗口显示,直到您的方法返回为止。您需要可以使用DispatcherTimer类在经过一些TimeSpan之后在UI线程上回调,或者创建一个执行睡眠的新线程。

当您进行网络操作时,这是一个很好的教训:不要阻止UI线程。