非同期メソッドが1つあります。
public async Task<BitmapSource> GetBitmapAsync(double[] pixels);
私もこのクラスを持っているとしましょう:
public class PixelData
{
public double[] Pixels { get; }
}
BitmapSource
ここで、上記の非同期メソッドを使用して出力を生成する便利なメソッドを作成したいと思います。これを行うには少なくとも3つのアプローチを考え出すことができますが、効率と信頼性の観点からどちらを選択すべきかはすぐにはわかりません。
誰かがアドバイスできますか。次の各アプローチの長所と短所は何ですか?
オプションA:Result
のを返す同期メソッドを作成しますTask
public BitmapSource GetBitmap(PixelData pixelData)
{
return GetBitmapAsync(pixelData.Pixels).Result;
}
オプションB以下を返す同期(または非同期ですか?)メソッドを作成しますTask<BitmapSource>
。
public Task<BitmapSource> GetBitmap(PixelData pixelData)
{
return GetBitmapAsync(pixelData.Pixels);
}
オプションCawait
:を明示的に使用する非同期メソッドを作成します
public async Task<BitmapSource> GetBitmapAsync(PixelData pixelData)
{
return await GetBitmapAsync(pixelData.Pixels);
}