Ich muss eine Datenbank erstellen/überprüfen Sie für meine Existenz bei meinem Programmstart.ApplicationData.Current.LocalFolder GetFile synchrone
public async Task CopyDatabaseIfNotExists(string dbPath)
{
var nExpectedFolder = IsolatedStorageFile.GetUserStoreForApplication();
try
{
await ApplicationData.Current.LocalFolder.GetFileAsync(dbPath); //nExpectedFolder.GetFileAsync(dbPath);/// ApplicationData.Current.LocalFolder.GetFileAsync("preinstalledDB.db");
// No exception means it exists
return;
}
catch (System.IO.FileNotFoundException)
{
// The file obviously doesn't exist
}
(... some other stuff)
Meine Anwendung kann und sollte nicht ausgeführt werden, bevor dieser Test abgeschlossen wurde.
Daher wollte ich meine Anrufe ändern, um synchron zu sein.
Allerdings sehe ich nur
ApplicationData.Current.LocalFolder.GetFileAsync
.GetFile existiert nicht.
Was wäre der Weg, um den Anruf synchron zu machen?
Ich glaube, der richtige Weg, um dies zu handhaben ist zu erwarten auf diese Methode von seiner Aufrufmethode. Und vor diesem Einsatz warten Sie auf die aufrufende Methode ebenso wie auf die gesamte Scope-Kette, bis Sie von einem Konstruktor aufrufen. Oder verwenden Sie eine "async void" -Methode, um sie aufzurufen, wenn Sie müssen, was sie synchron ausführt. [link] https://msdn.microsoft.com/en-us/magazine/jj991977.aspx –