Я разрабатываю приложение для обоев.Поэтому я использую Xamarin.Forms.Имеется вид прокрутки со всеми доступными обоями, а поверх него пользователь может видеть выбранный более крупный.
Проблема в том, что при запуске приложения я вижу, что оно немного запаздывает.(Изображения загружаются в поле зрения) И мне это не нравится.Это выглядит не очень хорошо.Итак, я начал новую задачу, в которой я получаю изображения из встроенных ресурсов.Но это не так много времени.Длительная вещь состоит в том, чтобы отобразить изображения в представлении.И я не могу сделать это в задаче, потому что это должен быть поток STA для доступа к представлению.
Я хочу это так:
Приложение запускается. Вы видите индикатор работающей активности.изображения загружаются из ресурса без блокировки потока пользовательского интерфейса. Изображения загружаются в представление без блокировки потока пользовательского интерфейса. Индикатор активности исчезает, и перед ним появляется основная сетка
So here is my code:
. Проверьте этот pastebin для кода.,
Спасибо.
Хорошо, я не решил проблему, но у меня есть решение:
Task.Factory.StartNew(() =>
{
return InitializeImages();
}).ContinueWith(r =>
{
Device.BeginInvokeOnMainThread(() =>
{
if (r.Result == GlobalSettings.ImageCount)
ButtonsGrid.ColumnDefinitions[1].Width = 0;
else
ButtonsGrid.ColumnDefinitions[1].Width = GridLength.Star;
for (int i = 0; i < r.Result; i++)
{
ImagesGrid.Children.Add(_previewImages[i]);
ImagesStackLayout.Children.Add(_images[i]);
}
});
Thread.Sleep(2000);
Device.BeginInvokeOnMainThread(async () =>
{
await ShowWallpaperInPreview();
await Loading(false);
});
});
Я позволил ей отставать на заднем плане.и через короткое время я переключаюсь с загрузки на обычный вид.Таким образом, он отстает на заднем плане (кого это волнует =)