[英]Scheduling a timed background task in windows 8.1 store app
我有一個名為Messages的StringsDouble列表。
該課程的代碼如下:
public class StringsDouble
{
public string Sender {get; set;}
public string Message {get; set;}
public DateTime Time {get; set;}
}
每次我的應用收到新消息。 我更新了List,並存儲了發送該消息的用戶發送的最新消息的時間。
我想要做的是,每5分鍾應用程序應該通過列表。
對於列表中的每個項目,它應該獲取時間屬性並獲取當前系統時間,並檢查差異是否超過30分鍾。 如果是,則應從列表中刪除該項目。
我怎么能做到這一點?
我相信我需要使用后台任務,但我如何安排它每5分鍾運行一次?
您可以在UI線程上使用DispatcherTimer
:
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMinutes(5);
timer.Tick += (sender, e) =>
{
//...
};
timer.Start();
或后台線程上的ThreadPoolTimer
:
ThreadPoolTimer threadPoolTimer = ThreadPoolTimer.CreatePeriodicTimer((source) =>
{
//...
}, TimeSpan.FromMinutes(5));
沒有辦法每5分鍾運行一次后台任務。
也許推送通知可以幫到你? 它有一個你可以猜到的價格,但你可以隨時隨地發送它們。
http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples
您可以下載這些示例,也有推送通知的示例代碼。
此鏈接(帶代碼)似乎表明您可以每隔15分鍾展開分配給應用程序的2秒CPU。 因此,您可以比每15分鍾更頻繁地在后台任務中運行一些代碼:
https://developer.qualcomm.com/blog/windows-8-background-tasks-part-3-make-most-cpu-usage-quota
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.