powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Полная отрисовка формы перед загрузкой данных
13 сообщений из 13, страница 1 из 1
Полная отрисовка формы перед загрузкой данных
    #39724976
IFK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IFK
Гость
Уважаемый форум,

Скорее всего боян, но ничего вразумительного не нашел.

Есть форма 1, которая грузится на старте. По событию Show происходит загрузка данных из внешнего источника. В это время сама форма не отрисовывается полностью - контролы не инициализированы и т.д.

Пробовал и двойную буфферизацию и вешать загрузку данных на другие события и отдельную форму 2 как стартовую с перебросом фокуса на рабочую форму 1 - результат один и тот же: форма 1 не отрисовывается полностью, пока не закончится загрузка данных. Если закомментировать загрузку данных - форма грузится очень быстро.

Как заставить форму отрисоваться полностью, а уже потом грузить данные? Есть варианты? Спасибо заранее!
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725007
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IFK,
Это шутка? Про потоки не слышал?
Или таймер на загрузку.
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725011
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) использовать асинхронный ввод\вывод при загрузке.
2) грузите данные в отдельном потоке

Вы в любом случае, даже если уберете из события инициализации или загрузки формы загрузку данных, это не поможет. Просто после появления формы она опять перестанет отвечать. Раньше или позже это случится, не важно. Как мне кажется, если интерфейс зависнет на длительное время уже после инициализации и отображения формы, будет еще хуже. Пока форма не появилась, я хотя бы жду, когда она загрузится, а если она открылась и замерла, то я скорее подумаю, что она умерла.
При этом, после её появления, если форма долго не будет отвечать, винда её предложит убить и дело с концом.

Если форма, не может работать без этих данных, то добавьте для формы состояние отражающее её загрузку. Форма откроется, на нет будет написано: "Загружаюсь" и заблокируйте интерфейс, загрузите данные в отдельном потоке или асинхронно, и смените состояние на "Загрузилась".

Никаких волшебных решений через параметр или смену события вы не найдете, такое поведение можно только ручками сделать.
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725016
IFK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IFK
Гость
Спасибо. Решил просто - добавил Msgbox перед загрузкой данных типа "Привет, ля-ля-ля. Нажмите ОК для загрузки данных".

Понимаю, что это решение из серии "забить гвоздь микроскопом".

Посоветуйте книги-статьи, чтобы почитать про потоки и работу с ними. Спасибо!
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725018
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725052
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IFKСпасибо. Решил просто - добавил Msgbox перед загрузкой данных типа "Привет, ля-ля-ля. Нажмите ОК для загрузки данных".

Понимаю, что это решение из серии "забить гвоздь микроскопом".

Посоветуйте книги-статьи, чтобы почитать про потоки и работу с ними. Спасибо!это называется костыль и даже для костыля звучит очень бредово :)
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725069
IFK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IFK
Гость
Roman MejtesIFKСпасибо. Решил просто - добавил Msgbox перед загрузкой данных типа "Привет, ля-ля-ля. Нажмите ОК для загрузки данных".

Понимаю, что это решение из серии "забить гвоздь микроскопом".

Посоветуйте книги-статьи, чтобы почитать про потоки и работу с ними. Спасибо!это называется костыль и даже для костыля звучит очень бредово :)

Что имеем, то и используем. Не все же ох...тельные программисты, как вы. :)
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725086
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IFK,

не надо быть ох.. программистом, чтоб написать в начале метода Async, а перед методов запроса Await, но дело ваше, удачной разработки
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725110
IFK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IFK
Гость
Roman MejtesIFK,

не надо быть ох.. программистом, чтоб написать в начале метода Async, а перед методов запроса Await, но дело ваше, удачной разработки

Спасибо, конечно, но написать Async и Await, я думаю, дело не ограничивается.
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725114
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IFK,

и не начинается :)
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725127
IFK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IFK
Гость
ViPRosIFK,

и не начинается :)

Тем более! :)
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725217
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут нет ничего хитрого.
Главное понять, почему такое происходит, и как с этим бороться.
Async, await, thread, task - это просто инструменты.
По факту Вы делаете загрузку в основном потоке, а он и отвечает за визуализацию.
Если хотите, чтобы визуализация не прерывалась - воспользуйтесь одним из упомянутых инструментов для загрузки данных не останавливая главный поток.
Вариант "пусть отрисуется, а там хоть трава не расти" категорически не рекомендую.
...
Рейтинг: 0 / 0
Полная отрисовка формы перед загрузкой данных
    #39725224
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IFKПосоветуйте книгиесли уж о книгах, то принцип асинхронности довольно хорошо расписан в справочнике Албахари C# 5.0 (6.0, 7.0). Там от печки, то есть начиная с потоков, потом задачи, а потом уже await и во что он компилируется
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Полная отрисовка формы перед загрузкой данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]