У меня есть один асинхронный метод:
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);
}