2016-08-29 8 views
1

http://arcware.net/upload-and-download-files-with-web-api-and-azure-blob-storage/のコードを使用して、空白にブロブをアップロードします。 ExecutePostProcessingAsync()メソッドでは、イメージのサイズを変更し、非同期コードを使用するメソッドを呼びたいと思います。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(); 
      } 

:タスクExecutePostProcessingAsync(非同期公共オーバーライド)

5+エラーに"タスク"を返す非同期メソッドであり、戻り値のキーワードの後に​​オブジェクト式を続けることはできません。「タスク」を返すつもりでしたか?」というメッセージが表示されます。

質問:

は、このメソッド内でメソッドを待つためにとにかくありますか?どのようなヘルプや入力がありがとう、ありがとう!

+0

'return await base.ExecutePostProcessingAsync(); ' –

答えて

1

asyncキーワードを使用すると、awaitというキーワードを使用できます。これで正しい構文は、操作を表すTaskを返さないことですが、むしろ単にawaitです。次のことを考えてみましょう:

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

お知らせ方法の代わりにベースの実行を表しTaskを返すようにしようとする、すなわち; base.ExecutePostProcessingAsync()我々は単にawaitを代わりに使用します。

+0

ありがとう、試してみましたが、同じエラーメッセージが表示されます。 – mattias

+0

@mattiasは更新されたバージョンを試しています。全く帰る理由はなく、ただ単に待っているだけです。 –

+0

それはトリックが大変感謝しました! – mattias

関連する問題