2015-09-08 1 views
1

Je rencontre un problème persistant dans mon application Windows 8.BackgroundTaskRegistration - La valeur ne se situe pas dans la plage attendue

Je veux enregistrer un BackgroundTask comme celui-ci:

private void CheckTaskRegistration() 
{ 
    foreach (var task in BackgroundTaskRegistration.AllTasks) 
    { 
     Debug.WriteLine(task); 
     if (task.Value.Name == "CheckConTask") 
     { 
      isTaskRegistered = true; 
      break; 
     } 
    } 

    if (isTaskRegistered) 
    { 
     Debug.WriteLine("debug1"); 
    } 
    else if (!isTaskRegistered) 
    { 
     BackgroundTaskBuilder btb = new BackgroundTaskBuilder(); 
     btb.Name = "CheckConTask"; 
     btb.TaskEntryPoint = "Btasks.CheckConTask"; 

     BackgroundTaskRegistration task = btb.Register(); 
     Debug.WriteLine("debug2"); 
    } 
} 

Everytime que je lance le code sur la machine locale, il me donne l'erreur suivante:

"Value does not fall within the expected range."

J'ai cherché sur stackoverflow (Like here) et partout mais je ne peux pas trouver de solution ...

Il est également difficile de trouver des informations sur cette erreur car il est s o générique ..

J'ai créé un tout nouveau projet avec un exemple de code comme celui-ci et rien.

Des suggestions ce que le problème pourrait être?

+0

Il serait bon que vous pouvez publier votre les détails de votre erreur. –

+0

Je ne sais pas comment ou pourquoi mais je viens de faire un nouveau projet et copié collé le code, ajouter le point d'entrée de tâche en arrière-plan sur appxmanifest, et l'erreur arrêtée. J'essaie maintenant de comprendre pourquoi ma tâche dit: > backgroundTaskHost.exe 'est sorti avec le code 1 (0x1). Quand je le déclenche, mais c'est un autre défi. Merci pour votre aide! – Afcosta

+0

Je suis content que vous l'ayez réussi! –

Répondre

0

Votre tâche n'a pas un ensemble de déclenchement:

TimeTrigger trigger = new TimeTrigger(15, false); 
BackgroundTaskBuilder builder = new BackgroundTaskBuilder(); 
builder.TaskEntryPoint = typeof(SubTask).FullName; 
builder.SetTrigger(trigger); 
builder.Register(); 

Assurez-vous que la tâche est enregistrée avec la gâchette correcte Package.appxmanifest:

<Extension Category="windows.backgroundTasks" EntryPoint="xxx.SubTask"> 
     <BackgroundTasks> 
     <Task Type="timer"/> 
     </BackgroundTasks> 
    </Extension>