Silverlight应用程序中页面的范围

时间:2009-12-24 06:51:47

标签: silverlight templates silverlight-3.0 scope

我有一个使用Silverlight导航应用程序模板构建的应用程序。

我有一个主窗体(例如MainPage.xaml)和一堆Silverlight Pages,它们在主内容区域内外交换。

在MainPage.xaml中,我有一个DispatcherTimer,它可以访问一些Uri资源,无论我在哪个页面。它时不时会莫名其妙地停止射击。

我知道它与各种页面的范围有关。 MainPage.xaml中的页面是否可以从其父页面中删除范围?

或者这更简单了吗?

1 个答案:

答案 0 :(得分:2)

如果您使用的是运行在Dispatcher线程(xaml)上的DispatcherTimer(这是用于构建UI的线程),则会更加简单,然后Timer会在阻塞时触发通过在同一个线程上运行的另一个动作。

此操作可能是之前的WebGet调用(不太可能,因为那些将是异步调用),或者更可能是您使用返回值执行操作可能非常耗时,或者某些页面可能需要比其他页面更多的时间来构建其UI内容,因此当线程空闲时,Dispatcher事件可能会排队并触发。

我建议您遵循构建Silverlight应用程序的MVVM架构风格,通过这样做,您可以从ViewModel运行您的计时器和WebGet调用,该调用在不受UI影响的不同线程上运行,因此不受转换的影响页。