Как дождаться выполнение метода и при этом не заблокировать основной поток? С# Xamarin

Имеется ImageButton, при нажатии на него срабатывает метод

imageButton1.Image_button.Clicked += async (a,o) =>
{
    ExitButton.IsVisible = true;
    Frame.IsVisible = true;
                    
    activityIndicator.IsRunning = true;
    activityIndicator.IsVisible = true;

    ImageButton image = (ImageButton)a;
    Image imageMaket = new Image { Source = image.Source };

    StackLayoutFromFrame.Children.Add(imageMaket);

    var NewImage =  await Task.Run(() => DowlandFromUrl(imageButton1.url));
    imageMaket.Source = NewImage.Source;

    activityIndicator.IsRunning = false;
    activityIndicator.IsVisible = false;
};


Image DowlandFromUrl(string uri)
{
    Image IB =  new  Image { Source = ImageSource.FromUri(new Uri(uri)) };

    return IB;
}

Почему этот метод Clicked() не дожидается выполнение метода DowlandFromUrl(),а запускает его в отдельном потоке? Мне нужно, только после полной загрузки var NewImage выполнялись

imageMaket.Source = NewImage.Source;
activityIndicator.IsRunning = false;
activityIndicator.IsVisible = false;

и при это не заблокировать основной поток. Или если я все делаю не правильно,подскажите как всё это реализовать правильно.

Спасибо большое за уделённое время!


Ответы (0 шт):