ожидаемый не может быть ожидаемым?Как ждать IAsyncOperation - PullRequest
1 голос
/ 24 сентября 2019

Я действительно схожу с ума, я не могу использовать какие-либо ожидания для асинхронных методов ниже ...

Это приложение UWP, код ниже находится внутри проекта Core, основанного на .NETСтандарт 2.0.

Я включил весь код, он явно незакончен.Самое странное поведение - BitmapDecoder говорит, что нет GetAwaiter (вам не хватает using?), Когда я удаляю ожидание, оно говорит, что мне нужно добавить ожидание: D

using System.Threading.Tasks;
using Windows.Storage.Streams;
using Windows.UI.Xaml.Media.Imaging;
using Windows.Graphics.Imaging;

namespace Namespace...
{
    public class CacheService
    {
        public async Task<BitmapImage> GetCachedImage(long? productId, long? imageId)
        {
            return null;
        }

        public async Task<BitmapImage> SaveImage(byte[] imageBytes, long? productId, long? imageId)
        {
            BitmapImage image = new BitmapImage();

            using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
            {
                using (DataWriter writer = new DataWriter(stream))
                {
                    writer.WriteBytes(imageBytes);
                    writer.StoreAsync();
                    writer.FlushAsync();
                    writer.DetachStream();
                }

                stream.Seek(0);
                image.SetSourceAsync(stream);
                BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
            }

            return image;
        }
    }
}
...