C# UWP - 如何修复 FileOpenPicker 和 StorageFile 异步错误?

C# UWP - How do I fix the FileOpenPicker and StorageFile async error?

我正在学习UWP,比较熟悉Windows.Forms。

我有两个按钮可以通过我的应用程序将文件上传到服务器(btnUploadPrice 是两个按钮之一)。为了获取文件的现有位置并存储该信息,我查看了 UWP 与 Windows.Forms 样式相比有何不同,并将这些 Microsoft 页面用作模板: https://docs.microsoft.com/en-us/uwp/api/windows.storage.storagefile https://docs.microsoft.com/en-us/uwp/api/Windows.Storage.Pickers.FileOpenPicker

这是我的按钮代码:

private void btnUploadPrice_Click(object sender, RoutedEventArgs e)
{
    //open file dialog and store name until save button pressed.
    FileOpenPicker f = new FileOpenPicker();
    StorageFile price = await f.PickSingleFileAsync();
    f.SuggestedStartLocation = PickerLocationId.Desktop;
    f.ViewMode = PickerViewMode.Thumbnail;
    if (price != null)
    {
        // Store file for future access
        Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(price);
    }
}

await f.PickSingleFileAsync()下划线错误如下: 'await' 运算符只能在异步方法中使用。考虑使用 'async' 修饰符标记此方法并将其 return 类型更改为 'Task'.

我的问题是,这几乎是来自 Microsoft 的 copy/paste,它给我一个没有意义的错误,因为它是一个异步方法,它以方法.. PickSingleFileAsync

我错过了什么?

await 只能在 async 方法中使用。只需更改您的方法签名以使其异步:

private async void btnUploadPrice_Click(object sender, RoutedEventArgs e)
{
    // your code
}