C#Win8.1通用应用程序后台任务:使用CancelOnConditionLoss应用程序

C#Win8.1通用应用程序后台任务:使用CancelOnConditionLoss应用程序,c#,win-universal-app,C#,Win Universal App,我正在构建一个带有后台任务的通用应用程序。注册任务时,我正在应用系统条件,条件丢失时取消设置为true: builder.AddCondition(new SystemCondition(SystemConditionType.UserNotPresent)); builder.CancelOnConditionLoss = true; 这是可行的,但问题是当条件丢失触发时,应用程序崩溃。如果我在条件丢失时不使用“取消”,即使“用户在场”,任务仍将继续运行。如果您在这个问题上有任何帮助或建议,

我正在构建一个带有后台任务的通用应用程序。注册任务时,我正在应用系统条件,条件丢失时取消设置为true:

builder.AddCondition(new SystemCondition(SystemConditionType.UserNotPresent));
builder.CancelOnConditionLoss = true;
这是可行的,但问题是当条件丢失触发时,应用程序崩溃。如果我在条件丢失时不使用“取消”,即使“用户在场”,任务仍将继续运行。如果您在这个问题上有任何帮助或建议,我们将不胜感激

以下是后台任务运行方法:

async public void Run(IBackgroundTaskInstance taskInstance)
{
    Debug.WriteLine(taskInstance.Task.Name + " task is running.......");

    //Get a deferral if we're doing async work.
    BackgroundTaskDeferral deferral = taskInstance.GetDeferral();

    try
    {
        taskInstance.Canceled += (s, e) =>
        {
            cancelRequest = true;
            s.Task.Unregister(true);
            Debug.WriteLine(s.Task.Name + " task has been cancelled.");
        };

        while (cancelRequest == false)
        {
            Debug.WriteLine("inside loop");

            await Task.Delay(15000);
        }
    }
    catch (Exception ex)
    {
        Debug.WriteLine("An Error Has Occurred: " + ex.Message);
    }

    deferral.Complete();
}
更新:
经过进一步调查,注意到在输出控制台中,应用程序抛出了以下错误:WWAHost.exe已退出,代码为1(0x1)

其中是deletral.Complete()?它在try/catch之后,只是一个复制粘贴错误:)