У меня есть один асинхронный метод:
public async Task<BitmapSource> GetBitmapAsync(double[] pixels);
Допустим, у меня тоже есть этот класс:
public class PixelData
{
public double[] Pixels { get; }
}
Теперь я хочу создать удобный метод, производящий вывод BitmapSource
, используя описанный выше асинхронный метод для выполнения работы. Я могу придумать как минимум три подхода для этого, но мне не сразу очевидно, какой из них выбрать с точки зрения эффективности и надежности.
Может кто-нибудь посоветовать; каковы преимущества и недостатки каждого из следующих подходов?
Вариант АСоздайте синхронный метод, который возвращает Result
из Task
:
public BitmapSource GetBitmap(PixelData pixelData)
{
return GetBitmapAsync(pixelData.Pixels).Result;
}
. Вариант БСоздать синхронный (или он асинхронный? )метод, который возвращаетTask<BitmapSource>
:
public Task<BitmapSource> GetBitmap(PixelData pixelData)
{
return GetBitmapAsync(pixelData.Pixels);
}
Вариант ССоздайте асинхронный метод, который явно используетawait
:
public async Task<BitmapSource> GetBitmapAsync(PixelData pixelData)
{
return await GetBitmapAsync(pixelData.Pixels);
}