C# UWP - Как исправить ошибки FileOpenPicker и StorageFile asyn c? - PullRequest
0 голосов
/ 07 апреля 2020

Я изучаю 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' может быть только используется в методе asyn c. Попробуйте пометить этот метод модификатором «asyn c» и изменить его тип возвращаемого значения на «Задача».

Моя проблема в том, что это почти копия / вставка из Microsoft, и она дает мне ошибка, которая не имеет смысла, потому что это метод Asyn c, он говорит это прямо в названии метода .. PickSingleFile Asyn c

Что такое я пропал?

1 Ответ

0 голосов
/ 07 апреля 2020

await можно использовать только внутри метода async. Просто измените сигнатуру вашего метода, чтобы она стала асин c:

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