我使用http://arcware.net/upload-and-download-files-with-web-api-and-azure-blob-storage/中的代码将blob上传到azure。使用方法ExecutePostProcessingAsync()我想调用一个调整图像大小并使用异步代码的方法。
我希望在外观(缩小)中使用它的方法如下:
public override Task ExecutePostProcessingAsync()
{
//some code
//I would like to await the image resizer method here before going any further
resizer.ScaleImage();
//Some more code here before returning
return base.ExecutePostProcessingAsync();
}
如果我向这样的方法添加async:public override async Task ExecutePostProcessingAsync()
出现参考问题以及错误时会出现5+错误:
"是一个返回'任务'的异步方法,返回关键字后面不能跟一个对象表达式。您是否打算返回'任务'?"
问题:
是否有等待此方法中的方法?感谢任何帮助或意见,谢谢!
答案 0 :(得分:1)
async
关键字可以使用await
关键字。话虽如此,正确的语法是不返回代表操作的Task
,而只返回await
它。请考虑以下事项:
public override async Task ExecutePostProcessingAsync()
{
await resizer.ScaleImageAsync();
await base.ExecutePostProcessingAsync();
}
请注意,而不是尝试返回代表基本执行的Task
,即; base.ExecutePostProcessingAsync()
我们只是await
而已。