C# 异步文件保存等待不";等待“;
如果这是个骗局,我道歉。我找不到任何专门针对我的问题的东西。我正试图用“wait SaveAsync”保存一个文件。我得到这个错误,访问被拒绝。(来自HRESULT:0x80070005(E_ACCESSDENIED)的异常)我假设它是,因为它试图在操作完成之前继续。。。但它不应该因为我用了“等待”而等待吗 这是我的密码C# 异步文件保存等待不";等待“;,c#,asynchronous,async-await,win-universal-app,C#,Asynchronous,Async Await,Win Universal App,如果这是个骗局,我道歉。我找不到任何专门针对我的问题的东西。我正试图用“wait SaveAsync”保存一个文件。我得到这个错误,访问被拒绝。(来自HRESULT:0x80070005(E_ACCESSDENIED)的异常)我假设它是,因为它试图在操作完成之前继续。。。但它不应该因为我用了“等待”而等待吗 这是我的密码 try { if (CurrentFile == null || !_existingDocument) {
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;
}
在MdTool.ViewModel.RmViewModel.d_u6.MoveNext()中找到了它!
在这里
想不到这与对话框有关。对所有回应的人。。。感谢您的帮助您不是在等待保存文件,而是在等待从外观上选择文件名。。。现在,为什么您认为问题在于
await
没有正常工作?错误实际上是在PickSaveFileAsync
中还是在Save
中?嗨,Jon,我假设是因为代码会立即在该点抛出错误。在web发现中,我看到了一个类似的问题,错误是由于异步代码在文件保存完成之前继续运行。所以答案是PickSaveFileAsync。我建议您不要假设任何事情。但是你应该在你的问题中发布完整的堆栈跟踪。这个好建议:)我永远不会完全假设任何事情。只是猜测一种预感。。。将堆栈跟踪添加到顶部。没有太多。好吧,假设异常在PickSaveFileAsync本身,就我所知,你永远不会等待它。。。
at Windows.Storage.Pickers.FileSavePicker.PickSaveFileAsync()