Windows 8中连接状态改变事件

本文关键字:改变 事件 状态 连接 Windows | 更新日期: 2023-09-27 17:53:25

当连接状态改变时是否有一个事件需要处理?

例如,我的应用程序是OutLook。我想处理一个事件,知道什么时候有互联网连接,然后发送所有待处理的电子邮件。

现在我可以定期检查是否有互联网连接,但这对我来说似乎是一个糟糕的解决方案。我想用事件来解决这个问题。

Windows 8中连接状态改变事件

你最好的选择是实现一个后台任务。这样,即使你的应用程序不再打开,当互联网连接可用时,你也可以发送待处理的电子邮件。

当注册一个后台任务时,你可以设置一个触发器和一个条件来配置当你想要你的任务运行:

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();
    }
}