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
}
我正在学习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
}