异步文件保存等待不“等待”

时间:2015-05-22 14:25:57

标签: c# asynchronous async-await win-universal-app

如果这是一个骗局,我道歉。我找不到任何特别针对我的问题的事情。我试图使用“等待SaveAsync”保存文件。我收到此错误访问被拒绝。 (来自HRESULT的异常:0x80070005(E_ACCESSDENIED))我假设它是因为它试图在动作完成之前继续前进......但它不应该等待,因为我使用了“await”?

这是我的代码

try
        {
            if (CurrentFile == null || !_existingDocument)
            {
                await _generateDoc();
                return;
            }

            var docGen = new CustDocument(_inputs);

            docGen.Save(CurrentFile);
        }
        catch (Exception ex)
        {

            throw;
        }

我的方法

 private async Task<StorageFile> _generateDoc()
    {

        var docGen = new CustDocument(_inputs);
        var savePicker = new FileSavePicker();

        savePicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
        savePicker.FileTypeChoices.Add("dptx File", new List<string>() {".dptx"});
        savePicker.SuggestedFileName = _inputs.CustomerName.Replace(" ", "").Trim();

        var file = await savePicker.PickSaveFileAsync(); // Error here

        docGen.Save(file);
        return file;
    }

堆栈跟踪(不多)

   at Windows.Storage.Pickers.FileSavePicker.PickSaveFileAsync()

at MdTool.ViewModel.RmViewModel。&lt; _generateDoc&gt; d__6.MoveNext()

1 个答案:

答案 0 :(得分:0)

发现它! 这里 Using FileSavePicker with MessageDialog's IUICommand event

从来没有想过它与对话框有关。对所有回复的人......感谢您的帮助