C# 解释为什么在调用MyPickFolderAsync()时使用Task pickedFolder=…错了吗?请注意,在我的代码行中,我使用的是Task而不是StorageFolder,这(根据您建议的代码)是不正确的MyPickFolderAsync@nam
C# 解释为什么在调用MyPickFolderAsync()时使用Task pickedFolder=…错了吗?请注意,在我的代码行中,我使用的是Task而不是StorageFolder,这(根据您建议的代码)是不正确的MyPickFolderAsync@nam,c#,uwp,C#,Uwp,解释为什么在调用MyPickFolderAsync()时使用Task pickedFolder=…错了吗?请注意,在我的代码行中,我使用的是Task而不是StorageFolder,这(根据您建议的代码)是不正确的MyPickFolderAsync@nam由于您从不等待MyPickFolderAsync(),任务处于挂起状态,无法继续。@Eldho我在下面的回复中进一步解释了这个问题。谢谢你的帮助。我已经编辑了上面的评论。在您的回复中,您能否解释一下为什么在我调用MyPickFolderAsyn
解释为什么在调用
MyPickFolderAsync()时使用Task pickedFolder=…
代码>错了吗?请注意,在我的代码行中,我使用的是Task
而不是StorageFolder
,这(根据您建议的代码)是不正确的MyPickFolderAsync@nam由于您从不等待MyPickFolderAsync()
,任务处于挂起状态,无法继续。@Eldho我在下面的回复中进一步解释了这个问题。谢谢你的帮助。我已经编辑了上面的评论。在您的回复中,您能否解释一下为什么在我调用MyPickFolderAsync()时使用Task pickedFolder=…
代码>错了吗?请注意,在我的代码行中,我使用的是Task
而不是StorageFolder
,这(根据您建议的代码)是不正确的MyPickFolderAsync@nam由于您从不等待MyPickFolderAsync()
,任务处于挂起状态,无法继续。@Eldho我在下面的回复中进一步解释了这个问题。谢谢你的帮助。
private async void BtnTest_Click(object sender, RoutedEventArgs e)
{
await TestAsync();
}
private async Task TestAsync()
{
Task<StorageFolder> pickedFolder = MyPickFolderAsync();
await MyTestAsync(...); //this method does something with pickedFolder folder but that is not relevant to this post since we don't even get to this line in debug mode as the Windows dialog hangs before we get to this line
}
private async Task<StorageFolder> MyPickFolderAsync()
{
Windows.Storage.Pickers.FolderPicker folderPicker = new Windows.Storage.Pickers.FolderPicker();
folderPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Downloads;
folderPicker.FileTypeFilter.Add("*");
Windows.Storage.StorageFolder folder = await folderPicker.PickSingleFolderAsync();
if (folder != null)
{
// Application now has read/write access to all contents in the picked folder (including other sub-folder contents)
Windows.Storage.AccessCache.StorageApplicationPermissions.
FutureAccessList.AddOrReplace("PickedFolderToken", folder);
//this.textBlock.Text = "Picked folder: " + folder.Name;
}
else
{
//this.textBlock.Text = "Operation cancelled.";
}
return folder;
}
private async Task TestAsync()
{
var pickedFolder = await MyPickFolderAsync();
}
Task<StorageFolder> pickedFolder = MyPickFolderAsync();