C#-UWP FolderPicker挂在Windows 10的FolderOpenDialog上

时间:2019-06-09 03:15:33

标签: c# uwp

下面的Windows.Storage.StorageFolder folder = await folderPicker.PickSingleFolderAsync();方法的行MyPickFolderAsync()应该允许我从默认的Downloads文件夹中选择一个文件夹,但是在它打开Windows打开文件夹对话框之后(位于{{ 1}}文件夹),对话框在那里挂起(冻结),我无法从Downloads文件夹中选择子文件夹。我在网上看到过类似的问题(例如thisthis),但这些问题似乎与Downloads的旧版本有关,而;我正在使用最新版本Windows 10

那么,我在这里可能会缺少什么,我们该如何解决?该问题似乎与我没有正确使用1809有关。我尝试使用async/await的各种方法,但到目前为止都没有成功。更好地了解使用异步方法的人可能会有所帮助。

流程如下:我单击async/await按钮,该按钮调用BtnTest,然后依次调用TestAsync()。我在MyPickFolderAsync()上使用VS2019

Windows10-ver 1809

2 个答案:

答案 0 :(得分:0)

public IAsyncOperation<StorageFolder> PickSingleFolderAsync()
对该方法的调用成功完成后,它将返回一个storageFolder对象,该对象代表用户选择的文件夹。

如果用户取消操作,则任务完成后,您将获得ErrorCodeStatus

由于您从未await the MyPickFolderAsync(),因此任务处于挂起状态并且无法进行。

private async Task TestAsync()
{
     var pickedFolder = await MyPickFolderAsync();
}

答案 1 :(得分:0)

首先感谢用户Eldho帮助我解决了该问题,我们应该give credit where credit's due

但是,为了使本文的其他读者受益,“可能”值得一提的是,当我在await的以下代码行中使用TestAsync()时遇到以下错误方法(必须更正):

Task<StorageFolder> pickedFolder = MyPickFolderAsync();

在上述调用中使用await时,出现以下错误:

enter image description here

因此,在读取用户@Eldho的响应之后,我不得不从上述代码行中删除Task<...>并将await添加到该行中(感谢@Eldho )。