2016-07-26 8 views
4

Я хочу создать фоновое задание, которое начинается с момента запуска приложения. Для этого я использую Trigger приложения.Ошибка фоновой задачи 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"); 
    } 
} 

Поэтому, когда я запускаю мое приложение, у меня есть эта ошибка:

Exception брошенного в 0x776BE26B (KernelBase.dll) в backgroundTaskHost.exe: 0x04242420 (параметры: 0x31415927, 0x5DE30000, 0x003CED68).

Исключение бросили на 0x776BE26B в backgroundTaskHost.exe: исключение Microsoft C++: EETypeLoadException в ячейке памяти 0x003CDF18.

Исключение бросили на 0x776BE26B в backgroundTaskHost.exe: исключение Microsoft C++: [rethrow] в ячейке памяти 0x00000000.

Исключение бросили на 0x776BE26B в backgroundTaskHost.exe: исключение Microsoft C++: EETypeLoadException в ячейке памяти 0x003CDF18.

Я ссылается моя фоновая задача в моем проекте, и я добавил свои фоновую задачу в моем манифесте

+0

Вы ссылались на свой компонент времени выполнения Windows, содержащий фоновые задачи в другом проекте? – TableCreek

+0

Да, это ссылка. –

+0

У вас есть возможность изменить язык os на английский? Мой французский слишком плохо, чтобы перевести его на английские эквивалентные слова. Мне кажется, что сообщение об ошибке звучит немного знакомо мне. Вы также пробовали отменить регистрацию задачи, прежде чем возвращать/создавать ее новую? – TableCreek

ответ

0

Есть две вещей, которым не виден из ваших отрезали:

Вы объявили ваша фоновая задача в разделе «Объявления» в вашем Package.appxmanifest?

И второе: В каком виде проекта «InternetBackground.cs»? Это должен быть компонент Windows Runtime

+0

Первый вопрос - да, я думаю, это в его последнем предложении ниже кода. –

+0

Да, я объявил и является хорошим типом проекта. –

Смежные вопросы