0
連接狀態更改時是否有事件需要處理?Windows 8中連接狀態變化的事件
例如,我的應用程序就像OutLook
。我想處理一個事件,以瞭解何時有Internet連接,然後發送所有待處理的電子郵件。
現在我可以定期檢查是否有Internet連接,但對我來說這似乎是一個糟糕的解決方案。我會用事件解決它。
連接狀態更改時是否有事件需要處理?Windows 8中連接狀態變化的事件
例如,我的應用程序就像OutLook
。我想處理一個事件,以瞭解何時有Internet連接,然後發送所有待處理的電子郵件。
現在我可以定期檢查是否有Internet連接,但對我來說這似乎是一個糟糕的解決方案。我會用事件解決它。
您的最佳選擇是實施background task。這樣,即使您的應用程序在互聯網連接可用時未再打開,您也可以發送掛起的電子郵件。
當註冊一個後臺任務,你可以設置一個觸發和配置條件時,你希望你的任務運行:
var trigger = new SystemTrigger(SystemTriggerType.InternetAvailable, false);
var condition = new SystemCondition(SystemConditionType.InternetAvailable);
var builder = new BackgroundTaskBuilder();
builder.Name = "Send pending e-mails task";
builder.TaskEntryPoint = "Tasks.SendPendingEmailTask";
builder.SetTrigger(trigger);
builder.AddCondition(condition);
var task = builder.Register();
你的後臺任務必須實現IBackgroundTask
接口。當任務被觸發時,將調用Run
方法:
public sealed class SendPendingEmailTask : IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
var deferral = taskInstance.GetDeferral();
// send your e-mails here
deferral.Complete();
}
}