A method was called at an unexpected time

妖精的绣舞 提交于 2019-12-03 22:18:17

You need to wait for the async method to complete. So you could use the new await as one option:

var files = await myStorageFolder.GetFilesAsync();

You might want to check the documentation on dealing with async methods here.

If you don't want to use the asynckeyword (in my case, the code was inside a property, so asyncwasn't an option), you can use a TaskAwaiter instead, by chaining these two methods:

var folder = Package.Current.InstalledLocation.GetFolderAsync("folderName").GetAwaiter().GetResult();

This won't throw a InvalidOperationException nor cause a deadlock.

you should await the var files = myStorageFolder.GetFilesAsync(); as the operation might still be running when you get to next instruction var results = files.GetResults(); //throws the exception

var files = await myStorageFolder.GetFilesAsync(); //runs fine
var results = files.GetResults(); //this will run when call above returns
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!