2009-12-24 52 views
1

我有一個使用Silverlight導航應用程序模板構建的應用程序。Silverlight應用程序中的頁面範圍

我有一個主窗體(例如MainPage.xaml)和一堆Silverlight頁面,它們被交換進入和離開主內容區域。

在MainPage.xaml中,我有一個DispatcherTimer,它會觸及一些Uri資源,而不管我在哪個頁面上。不時地,它會莫名其妙地停止射擊。

我有一個暗示,它與各種頁面的範圍有關。 MainPage.xaml中的頁面是否可以從其父項中取消範圍?

或者這是更簡單嗎?

+0

定義「範圍」? – AnthonyWJones 2009-12-24 11:35:33

回答

2

如果您使用在Dispatcher線程(xaml)上運行的DispatcherTimer(這是用於構建UI的線程),那麼定時器在被另一個操作阻止時不會觸發在同一個線程上運行。

此操作可能是以前的WebGet調用(不太可能,因爲這些操作會是異步調用),或者更可能是您的返回值操作耗時,或者某些頁面可能比其他頁面需要更多時間來構建它們UI內容,因此Dispatcher事件可能會排隊並在線程空閒時觸發。

我建議您遵循構建Silverlight應用程序的MVVM體系結構樣式,通過這樣做,您可以從ViewModel運行定時器和WebGet調用,該調用在不受UI影響的不同線程上運行,因此不受轉換影響的頁面。

相關問題