próbuję iteracyjne wszystkie pliki w katalogu z użyciem GetFilesAsync, ale za każdym razem wywołać metodę getresults, zgłasza wyjątek, który mówiMetoda nazwano w nieoczekiwanym momencie
System.InvalidOperationException: metoda nazwano na nieoczekiwane czasie
Kod jest po prostu
var files = myStorageFolder.GetFilesAsync(); //runs fine
var results = files.GetResults(); //throws the exception
Jestem nowy na Win 8 dev więc może brakować czegoś oczywistego.
Edit (rozwiązany) Biegnę mojej aplikacji konsoli, ale teraz, że program działa asynchronicznie, metoda files.GetResult()
już nie istnieje.
static void Main(string[] args)
{
var files = GetFiles(myStorageFolder);
var results = files.GetAwaiter().GetResults();//Need to add GetAwaiter()
}
static async Task GetFiles(StorageFolder sf)
{
await sf.GetFilesAsync();
}
Czy potrzebuję żadnych instrukcji 'Using' do użycia metody' GetAwaiter'? – user1
@ user1 Nie pamiętam, to jest sprzed 2 lat. Ale przeglądając dokumenty, jest to metoda rozszerzenia, której potrzebujesz: ['WindowsRuntimeSystemExtensions.GetAwaiter'] (https://msdn.microsoft.com/en-us/library/hh582011 (v = vs.110) .aspx). Jest on zdefiniowany w przestrzeni nazw 'System', więc prawdopodobnie masz ją już w zakresie – dcastro
Zauważyłem, że' GetAwaiter() 'było na' Zadanie' i próbowałem użyć go na 'IAwaitableOperation', więc musiałem zadzwonić' AsTask', a następnie 'Wyniki', cholernie' UWP'. W każdym razie dzięki! – user1