Как дождаться выполнение метода и при этом не заблокировать основной поток? С# 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;
и при это не заблокировать основной поток. Или если я все делаю не правильно,подскажите как всё это реализовать правильно.
Спасибо большое за уделённое время!