私は大まかな草案のために、以下のパターンを使用して大量のデータアクセスメソッドを非同期に変換しました。後の繰り返しではそれほど簡単ではありません。それはどれくらい安全で、何が欠けているのですか、どうすればいいでしょうか?これは単純な非同期呼び出しを非同期にしていますか?
実行時間の長い通話を提供するサービス:
private class UserService
{
public IdentityUser GetById(int id)
{
...
}
}
private UserService _userService = new UserService();
元の同期方法:
public IdentityUser GetById(int id)
{
return _userService.GetById(id);
}
私の素晴らしい新しい非同期メソッド:
public async Task<IdentityUser> GetByIdAsync(int id)
{
await Task.Run(() => _userService.GetById(id));
}
長時間実行されるクエリには、対処する必要のある可能性のある問題のリストが多数あります。なぜSignalR Nugetをインストールしてそれらをすべてあなたのために修正するのではなく、WebSocketのサポートも! –
@MattiasÅslund:異なる人々は、「長期実行」の定義が異なります。私は、GetById()がSignalRの使用に適しているような、「長期実行」のようなものではないと感じています。 – StriplingWarrior
あなたはWCFサービスまたはWeb APIとして消費していますか?そうであれば、サーバ側では悪化するだけです。 – Noseratio