Подвисание 3dsmax во время выполения скриптов, лечится! |
Home· Статьи · Вакансии · Чертежи · 3D Галерея · 2D Галерея · Форум · Форум Realtime | Реклама |  Конкурсы | RAR Award | Правила |
Здравствуйте, гость ( Вход | Регистрация )
Подвисание 3dsmax во время выполения скриптов, лечится! |
28/12/2011, 00:36
Сообщение
#1
|
|
Уважаемый Группа: Пользователи Сообщений: 917 Регистрация: 24/12/2003 Из: Тольятти Пользователь №: 3 979 |
и снова здравствуйте. Создал новую тему вместо продолжения старой чтобы потом елси что люди с аналогичными вопросами могли найти ее.
итак имеется модель, для которой я сделал экспортер в свой собственный формат. во время обхода модели вывожу процесс в прогресс бар и вижу как после некоторого времени прогресс бар перестает обновляться и в заголовке написано что 3д макс не отвечает. При этом рассчет продолжается и по завершению все отвисает обратно и работает в порядке. Если ли какие нибудь методы профилактики этих подвисаний? |
|
|
28/12/2011, 08:24
Сообщение
#2
|
|
Receiver Of Wisdom Группа: Пользователи Сообщений: 5 968 Регистрация: 01/03/2008 Из: глубин подсознания Пользователь №: 62 106 |
ну это дефолтная штука в принципе во всех виндовых программах
иногда в таких случаях можно ставить в цикл кхм.. ну в вб это был doevents который как-бы прерывал для вывода, в делфи какой то контрол специальный был для этого типа факела что-ли в си тоже что-то должно быть, и современных версиях для .нет тоже есть такое Но при этом прерывание для обновления прогресс бара приведет к тому что скорость вычислений снизится, ну собственно засчет прерывания на обновление прогресс бара. Думаю это будет особенно заметно в случае если вычисляется огромный массив какой-нибудь фигни и при этом на вычисления 1 элемента затрачивается очень мало времени. Вообщем перебор какой-нибудь фигни, тогда обновление может немного затянуть процесс. А вот если там по секунд 30 или несколько минут вычисление идет то наверное заметной разницы не будет. вообще что-бы сама прога не славливала "не отвечает", нужно процесс вычисления запихивать в отдельный поток. А вот как с прогресс баром быть, но возможно если прогресс бар будет как-бы тоже в потоке и из него выводится на экран то может такой фигни не будет. (Это когда объявляется в потоке вроде форма выводится на экран и там прогресс бар временный, правда я не уверен возможно точно так-же к концу цикла перестанет отвечать) А может все это и не применимо для макс скриптов) Сообщение отредактировал Prayer - 28/12/2011, 08:32 |
|
|
28/12/2011, 08:41
Сообщение
#3
|
|
Избранный :) Группа: Участник Сообщений: 5 052 Регистрация: 20/01/2004 Из: Химки м/о Пользователь №: 4 253 |
если про макс скрипт то
progressStart progressUpdate progressEnd Скорость вычисления снижается ~30% |
|
|
28/12/2011, 09:37
Сообщение
#4
|
|
Рыцарь форума Группа: Участник Сообщений: 2 211 Регистрация: 01/04/2003 Из: Moscow/Russia Пользователь №: 1 802 |
Если ли какие нибудь методы профилактики этих подвисаний? решение тут : http://forums.cgsociety.org/showpost.php?p...mp;postcount=19 |
|
|
28/12/2011, 12:32
Сообщение
#5
|
|
Уважаемый Группа: Пользователи Сообщений: 917 Регистрация: 24/12/2003 Из: Тольятти Пользователь №: 3 979 |
app=dotNetclass "System.Windows.Forms.Application"
app.doEvents() помогло.. только его надо не с каждой итерацией цикла вызывать а сильно реже, тогда замедления просчета нет. Всем спасибо |
|
|
30/12/2011, 07:54
Сообщение
#6
|
|
Русскоговорящий жидо-бандеровец Группа: Пользователи Сообщений: 1 336 Регистрация: 16/07/2004 Из: Украина-Одесса Пользователь №: 6 600 |
|
|
|
30/12/2011, 12:38
Сообщение
#7
|
|
Уважаемый Группа: Пользователи Сообщений: 917 Регистрация: 24/12/2003 Из: Тольятти Пользователь №: 3 979 |
ухты как интересно
|
|
|
Bots |
Системное сообщение
|
|
|
|
|
Текстовая версия | Сейчас: 19/04/2024 - 06:17 |