2013-03-29 29 views
2

我有一個Windows應用商店,我正在設置它定期更新瓷磚。最初,我將它設置爲使用StartPeriodicUpdate(Uri, PeriodicUpdateRecurrence),但它似乎沒有更新,並且由於最小重複次數爲HalfHour,我想使用StartPeriodicUpdate(Uri, DateTime, PeriodicUpdateRecurrence),並將startTime設置爲DateTimeOffset.Now.AddMinutes(5),以便它在更新之前等待5分鐘以使測試更容易。代碼:爲什麼TileUpdater.StartPeriodicUpdate的行爲不如預期?

public void UpdateLiveTile() 
{ 
     LiveTileUpdater.Clear(); 
     var uri = TILE_UPDATE_URI; // example 
     var start = DateTimeOffset.Now.AddMinutes(5); 
     LiveTileUpdater.StartPeriodicUpdate(uri, start, PeriodicUpdateRecurrence.HalfHour); 
} 

然而,當我運行這個,立即瓷磚的更新,而不是更新的時候,它被稱爲5分鐘。我認爲調用沒有startDate參數的覆蓋會立即運行(它確實),然後另一個會在5分鐘後運行。有誰知道它爲什麼立即更新,或者我如何確保它被延遲?

編輯:此外,如果有人知道爲什麼定期更新也沒有發生,這將是一個很大的幫助。服務器肯定是正確響應,因爲第一次更新很好,但它永遠不會改變。文檔表明,開始時間和週期性時間間隔可能會延遲15分鐘,但超出了這個誤差範圍,我沒有得到任何更新。

回答

1

我找到了答案上this page(粗體是我的重點):

當調用這些方法之一,的URI調用中指定立即調查和瓷磚或徽章與更新收到的內容。在初始輪詢之後,Windows會繼續按請求的時間間隔提供更新。輪詢會一直繼續,直到明確停止......

我認爲,恆溫5分鐘刷新不工作的原因,那麼,它立即調查,然後就不會再早於間隔輪詢( 30分鐘),但它會從然後而不是現在刷新30分鐘。最後一部分是推測,但上面的段落指出了它爲什麼立即更新。對於第二部分來說,它看起來像是在更新(當我用斷點運行本地主機時,斷點最終被擊中,並刷新了磁貼),我想我只是沒有等待足夠長的時間。