我有一种异步方法:
public async Task<BitmapSource> GetBitmapAsync(double[] pixels);
假设我也有这个类:
public class PixelData
{
public double[] Pixels { get; }
}
我现在想创建一个产生BitmapSource
输出的便捷方法,使用上面的异步方法来完成工作。我可以想出至少三种方法来做到这一点,但从效率和可靠性的角度来看,我应该选择哪一种并不是很明显。
有人可以建议吗?以下每种方法的优点和缺点是什么?
选项 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);
}
选项 C创建一个显式使用的异步方法await
:
public async Task<BitmapSource> GetBitmapAsync(PixelData pixelData)
{
return await GetBitmapAsync(pixelData.Pixels);
}