2016-07-26 110 views
4

我想创建一个后台任务,它在应用程序启动时启动。为此,我使用应用程序触发器。UWP后台任务错误

MainPage.xaml.cs中

var trigger = new ApplicationTrigger(); 
    BackgroundManagement.RegisterBackgroundTask("InternetBackgroundTask.InternetBackground", "Internet", trigger, null); 
    await trigger.RequestAsync(); 

BackgroundManagement.cs

public static BackgroundTaskRegistration RegisterBackgroundTask(string taskEntryPoint,string taskName,IBackgroundTrigger trigger,IBackgroundCondition condition) 
    { 
     // 
     // Check for existing registrations of this background task. 
     // 

     foreach (var cur in BackgroundTaskRegistration.AllTasks) 
     { 

      if (cur.Value.Name == taskName) 
      { 
       // 
       // The task is already registered. 
       // 

       return (BackgroundTaskRegistration)(cur.Value); 
      } 
     } 

     // 
     // Register the background task. 
     // 

     var builder = new BackgroundTaskBuilder(); 

     builder.Name = taskName; 
     builder.TaskEntryPoint = taskEntryPoint; 
     builder.SetTrigger(trigger); 


     if (condition != null) 
     { 

      builder.AddCondition(condition); 
     } 

     BackgroundTaskRegistration task = builder.Register(); 

     return task; 
    } 

Mytask的另一个项目

namespace InternetBackgroundTask 
{ 
public sealed class InternetBackground : IBackgroundTask 
{ 

    public void Run(IBackgroundTaskInstance taskInstance) 
    { 
     System.Diagnostics.Debug.WriteLine("Run Background Task"); 
    } 
} 

所以,当我启动我的应用我有这个错误:

异常在backgroundTaskHost.exe在0x776BE26B(KernelBase.dll)抛出:0x04242420(参数:0x31415927,0x5DE30000,0x003CED68)。

backgroundTaskHost.exe中的0x776BE26B引发的异常:Microsoft C++异常:内存位置0x003CDF18处的EETypeLoadException。

在backgroundTaskHost.exe中引发0x776BE26B异常:Microsoft C++异常:[rethrow]在内存位置0x00000000。

backgroundTaskHost.exe中的0x776BE26B引发的异常:Microsoft C++异常:内存位置0x003CDF18处的EETypeLoadException。

我引用我的后台任务在我的项目,我已经添加了我的后台任务在我的清单

+0

您是否在其他项目中引用了包含后台任务的Windows运行时组件? – TableCreek

+0

是的,它被引用。 –

+0

您是否可以选择将操作系统语言更改为英语?我的法语太糟糕了,无法将其翻译成英文等同的单词。我认为这个错误信息听起来有点儿熟悉。 您是否还尝试在返回/创建它之前取消注册任务? – TableCreek

回答

0

有两件事情至极不是从你剪断明显:

你有声明您在Package.appxmanifest中的“声明”下的后台任务?

而第二个: 什么项目类型是“InternetBackground.cs”?它应该是Windows运行时组件

+0

第一个问题是,我想,这是在他的最后一句话下面的代码。 –

+0

是的,我宣布并且是一个很好的项目类型。 –