Как добавит элементы в FlexLayout не блокируя основной поток?

Здраствуйте.Имеется FlexLayout

         <ScrollView  Scrolled="ScrollView_Scrolled">
         
            <FlexLayout x:Name="flexLayout"
                    Wrap="Wrap"
                    JustifyContent="SpaceAround" >

            </FlexLayout>

         </ScrollView>

В него добавляются новые элементы,как только будет достигнута конец ScrollView.

private void ScrollView_Scrolled(object sender, ScrolledEventArgs e)
    {
        ScrollView scrollView = sender as ScrollView;
        int scrollingSpace = (int)(scrollView.ContentSize.Height - scrollView.Height);
        var scrollY =(int) e.ScrollY;
        
        if (scrollingSpace <= scrollY)
        {
          AddContent();
        }
     }

Метод AddContent() асинхронный.Но почему-то всё равно блокируется основной поток,во время загрузки длительностью в две секунды пользователь не может работать с ScrollView. Как не заблокировать основной поток,во время загрузки элементов? Спасибо за уделённое время.

async void AddContent() 
    {
        try
        {
            

            var ResultPhotoPexalNextPage = await pexelsClient.CuratedPhotosAsync(NamberPage,SizePage);
            NamberPage++;
            
            
            
            for (int i = 0; i < SizePage; i++)
            {

                ImageClass imageButton1 = new ImageClass
                    (
                      new ImageButton { Source = ImageSource.FromUri(new Uri(ResultPhotoPexalNextPage.photos[i].source.medium)), StyleId = ResultPhotoPexalNextPage.photos[i].photographerUrl },
                      url: ResultPhotoPexalNextPage.photos[i].source.portrait,
                      Height_Image: ResultPhotoPexalNextPage.photos[i].height,
                      Width_Image: ResultPhotoPexalNextPage.photos[i].width,
                      photographer_url: ResultPhotoPexalNextPage.photos[i].photographerUrl,
                      photographer_name: ResultPhotoPexalNextPage.photos[i].photographer
                    );


                };

                flexLayout.Children.Add(imageButton1.Image_button);

            }
           
            
            //DeleteLater
            Label1.Text = (GC.GetTotalMemory(false) / 1048576).ToString() + " MB";
            //
            

        }
        catch (Exception q)
        {
            

        }

    }

}

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