Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 解释为什么在调用MyPickFolderAsync()时使用Task pickedFolder=…错了吗?请注意,在我的代码行中,我使用的是Task而不是StorageFolder,这(根据您建议的代码)是不正确的MyPickFolderAsync@nam_C#_Uwp - Fatal编程技术网

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();