|
14 / 13 / 6
Регистрация: 21.01.2015
Сообщений: 150
|
|
Долгая инициализация dll проекта10.04.2017, 09:59. Показов 2621. Ответов 16
Метки нет (Все метки)
Здравствуйте. К проектам часто подключён мой подпроект в виде dll, в котором много компонентов, сама строка initializecomponent() выполняется 3-3.5 секунды. Можно ли проинициализировать её(dll) в отдельном потоке, а потом уже показать пользователю? Вечно пользователи жалуются на первый запуск, что долго. Последующие - уже моментально.
0
|
|
| 10.04.2017, 09:59 | |
|
Ответы с готовыми решениями:
16
Можно ли из своего проекта сделать DLL DLL для проекта - вчера работали, сегодня ошибка Lenovo G550 долгая инициализация при старте |
|
157 / 156 / 104
Регистрация: 01.10.2015
Сообщений: 310
|
|
| 10.04.2017, 10:47 | |
|
kpNemo, что за нетерпеливые пользователи? Ведь 4 секунды это не долго, да ещё и для первого запуска! Добавьте ProgressBar – я слышал, что он немного успокаивает таких юзеров
0
|
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
| 10.04.2017, 11:32 | |
|
kpNemo, ну откудаж мы знаем что там у тебя происходит целых 3 секунды? Тут у нас не битва экстрасенсов.
0
|
|
|
14 / 13 / 6
Регистрация: 21.01.2015
Сообщений: 150
|
|
| 10.04.2017, 14:02 [ТС] | |
|
BroDMax,для кого 4 секунды, а сам проект стартует минимум 30 сек, общий. К которому ещё подключены около 15 других проектов. Полезь поменяй ради "попробовать" - себе дороже. Прогрес бар не успокаивает никого, не знаю где вы такое слышали. Это миф.
На средней машине 3-3.5 сек старта, на очень слабой может и все 30. Причём первый раз, после того как длль загружена в память - повторная загрузка моментальна. aquaMakc, "сама строка initializecomponent()" - вы не знаете, что там может происходить? Инициализация сотен, а то и тысяч компонентов. Представьте контрол девекспресса, в который ещё добавить функционала. Повторю, можете подскажете. Вопрос в чём, не будет ли ругани, что инициализация проекта была в другом потоке? А после вызов с основного?
0
|
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|||
| 10.04.2017, 14:05 | |||
|
0
|
|||
|
157 / 156 / 104
Регистрация: 01.10.2015
Сообщений: 310
|
|||
| 10.04.2017, 14:14 | |||
|
kpNemo, если речь идет о контролах – то даже отдельный поток не поможет. Первый будет уже требовать ещё не загруженные контролы из второго.
Добавлено через 6 минут Добавлено через 2 минуты
0
|
|||
| 10.04.2017, 14:15 | |
|
0
|
|
|
157 / 156 / 104
Регистрация: 01.10.2015
Сообщений: 310
|
||
| 10.04.2017, 14:21 | ||
|
Не по теме:
Добавлено через 1 минуту Rius, Вы правы. Но говоря это, я имел ввиду прогресс бар без указания диапазонов, не указал это
0
|
||
|
14 / 13 / 6
Регистрация: 21.01.2015
Сообщений: 150
|
|
| 10.04.2017, 14:49 [ТС] | |
|
Rius, Чего сразу оскорблениями кидаться, если сути проекта не знаете? Неприятно.
aquaMakc, екстрасенсы и не нужны. Какой может быть ф-ционал в инициализации компонентов? В функции, которая автоматически сгенерирована студией. Не важно какой функционал. Загвоздка во времени, которое уходит на создание большого количества компонентов. Трудность в том, что подключён девекспресс(типа ворда и екселя) с расширенным доп функционалом, а на инициализацию ихнего контрола и уходит много-много времени, там у них свои технологии, и разбить инициализацию ихних компонентов уж никак не представляется возможным. Ребят, я не ищу стёба, я ищу ответ на вопрос. Ни разу ещё не срали так мне в тему, эти насмешки, противно. Спасибо, сам уже разберусь. Тему пожалуйста удалите. Это уже срач.
0
|
|
|
157 / 156 / 104
Регистрация: 01.10.2015
Сообщений: 310
|
|
| 10.04.2017, 14:52 | |
|
kpNemo, Вы сами ответили на свой вопрос: "на инициализацию ихнего контрола и уходит много-много времени, там у них свои технологии, и разбить инициализацию ихних компонентов уж никак не представляется возможным.". Потоки не помогут – как Вы себе это представляете? Так бы и Word загружался бы за 3 секунды на медленном компьютере... Логично ведь?
0
|
|
|
14 / 13 / 6
Регистрация: 21.01.2015
Сообщений: 150
|
|
| 10.04.2017, 15:07 [ТС] | |
|
BroDMax, в этом вопрос и заключался. Спасибо. Это как загрузили ворд, а там есть окошко - редактор формул(я утрирую), вы его вызвали - и 3 секунды открывается окно, первый раз. Потом то длль в памяти висит, и повторное открытие окна - моментально. Но часто на демонстрации как, собирается куча людей, ноутбук, проектор. Требуют вот прямо на ноуте запустить при них. И первый запуск - сразу жалобы на этот долгий запуск, особенно если на ноуте 2 гб оперативки и какой-то целерон. Вот и подумал, может подскажут, как провести при запуске программы инициализацию втихую, ведь этот компонент запускают не сразу, а там пока перейдут на вкладку, пока откроют список, нужный скрипт... У меня так загрузка огромного формуляра(бывает 1000+ человек, может и больше, а там связей между таблицами - с ума сойти) идёт сразу после запуска программы, но там что - нужное втихую подгружается, выбирается, сортируется. Это всего-то модель данных, которая нужна где-то как раз секунд через 30 после запуска программы, вот модель эта и формируется в отдельных потоках от 10 до 30 сек.
0
|
|
|
|
||||
| 10.04.2017, 15:15 | ||||
|
Данные из БД можно подгружать в отдельном потоке. Главное не касаться контролов GUI.
0
|
||||
|
157 / 156 / 104
Регистрация: 01.10.2015
Сообщений: 310
|
|
| 10.04.2017, 15:21 | |
|
kpNemo, вот Вы и рассказали, что требуется, как и просил aquaMakc. Во-первых, можно попытаться инициализировать при открытии всего приложения, чтобы в процессе работы не мешало.. Во-вторых, теоретически, можно попытаться в параллельном потоке начать инициализацию dll. Вопрос в другом: что если не успеет? Будет ошибка, вызов незагруженных компонентов. Но это всё в теории, на практике опыта не было.
0
|
|
|
|
||
| 10.04.2017, 15:35 | ||
Сообщение было отмечено kpNemo как решение
РешениеДобавлено через 1 минуту Ещё пробовал в отдельном потоке загружать все библиотеки через Assembly.Load, чтобы в показу формы уже всё было загружено.
1
|
||
|
Администратор
|
|
| 10.04.2017, 20:36 | |
Сообщение было отмечено kpNemo как решение
Решение
kpNemo, посмотри эти ссылки - Application Startup Time (статья про WPF, но применима и к Windows Forms) и 12 Tips To Speed-up Your Windows Forms Applications.
2
|
|
| 10.04.2017, 20:36 | |
|
Помогаю со студенческими работами здесь
17
Очень долгая сборка проекта с использованием webpack Долгая загрузка управляемой DLL Инициализация проекта При компиляции DLL-проекта не создается DLL-ка Qt и BASS.dll. Инициализация Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
|