首页 文章

如何在ExecutePostProcessingAsync中等待异步方法

提问于
浏览
1

我使用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个错误,引用问题以及错误:

“是一个返回'Task'的异步方法,返回关键字后面不能跟一个对象表达式 . 你打算返回'Task'吗?”

Questions:

反正有没有等待这个方法里面的方法?感谢任何帮助或意见,谢谢!

1 回答

  • 1

    async 关键字允许使用 await 关键字 . 话虽如此,正确的语法是不返回代表操作的 Task ,而只是返回 await . 考虑以下:

    public override async Task ExecutePostProcessingAsync()
    {
        await resizer.ScaleImageAsync();
        await base.ExecutePostProcessingAsync();
    }
    

    注意如何而不是试图返回代表基本执行的 Task ,即; base.ExecutePostProcessingAsync() 我们只是 await 而不是 .

相关问题