0

私は MVC Web アプリケーションを持っています。コントローラー アクションはビジネス レイヤーのコードを呼び出し、次に API を呼び出します。

public async Task<ActionResult> TestAction(){
   Info something = await businessLayer.GetInfoAsync();
   return View(something);
}

ビジネス層では、GetInfoAsync を次のように定義しています。

public async Task<Info> GetInfoAsync(){
   return await myLib.GetAsync<Info>();
}

私のライブラリでは、GetAsync を次のように定義しています。

public async Task<T> GetAsync(){
   //do something
   var data = await aService.Get<T>();
   return data;
}

上記のように、GetInfoAsync メソッドは myLib.GetAsync を呼び出すだけで、myLib.GetAsync が返す値を返します。GetInfoAsync の async/await を取り除き、次のように定義できますか。

public Task<Info> GetInfoAsync(){
   return myLib.GetAsync<Info>();
}

ありがとう !

4

1 に答える 1

1

はい、中間層でasync/を取り除くことができます (そしてそうすべきです) 。await

asyncメソッドが単一のタスクを実行するだけの場合await(それがすべてです)、asyncオーバーヘッドが追加されます。

于 2013-11-07T13:17:35.373 に答える