2016-04-24 7 views
2

Ich entwickle UWP mit Prism, wenn App startet, muss es eine Datei von InstallLocation zu LocalFolder kopieren, und stellen Sie sicher, dass die Datei in LocalFolder vorhanden ist, bevor Sie zu MainPage navigieren. Irgendeine Idee wie kann ich das erreichen?Wie implementiere ich eine zeitaufwendige Aufgabe in OnLaunchApplicationAsync für Prism in UWP?

Es scheint, als ob OnLaunchApplicationAsync eine Aufgabe zurückgeben kann, aber zuerst zu MainPage navigieren, bevor die Aufgabe abgeschlossen ist.

protected override Task OnLaunchApplicationAsync(LaunchActivatedEventArgs args) 
    { 
     Task task = new Task(async() => 
     { 
      StorageFile dataFile = await Package.Current.InstalledLocation.GetFileAsync("xx.db3"); 
      await dataFile.CopyAsync(ApplicationData.Current.LocalFolder, "xx.db3", NameCollisionOption.FailIfExists); 
     }); 

     NavigationService.Navigate("Main", null); 
     Window.Current.Activate(); 

     return task; 

     //return Task.FromResult<object>(null); 
    } 

Jede Hilfe wird geschätzt.

+0

Sie müssen sich auf der äußeren Task 'await'. –

Antwort

1

Was ist damit?

protected override async Task OnLaunchApplicationAsync(LaunchActivatedEventArgs args) 
{ 
    StorageFile dataFile = await Package.Current.InstalledLocation.GetFileAsync("xx.db3"); 
    await dataFile.CopyAsync(ApplicationData.Current.LocalFolder, "xx.db3", NameCollisionOption.FailIfExists); 

    NavigationService.Navigate("Main", null); 
    Window.Current.Activate(); 
} 

Keine Notwendigkeit, Dinge komplizieren über :-)

+0

@Brian, funktioniert es so, wie Sie es wollten? – Haukinger