簡體   English   中英

在Windows 8.1商店應用程序中安排定時后台任務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM