ADN Club => AutoCAD .NET API => Тема начата: bargool от 15-10-2015, 16:45:30
Название: TaskDialog оочень медленный
Отправлено: bargool от 15-10-2015, 16:45:30
Экспериментировал тут с TaskDialog - либо он очень медленный, либо я его неправильно готовлю. Может, есть какие неочевидные способы ускорить обработку чертежа в рамках работы с TaskDialog?
Код приводить незачем, всё как здесь (http://adndevblog.typepad.com/autocad/2013/01/taskdialog-with-progress-bar.html) и здесь (http://through-the-interface.typepad.com/through_the_interface/2008/11/implementing-ta.html)
Как пример, операция, состоящая из 90 шагов без диалога занимает 2 секунды. Если обновлять диалог на каждом шаге (ну, прогресс бар там подвигать..), то это дело занимает уже 15 секунд. Если обновлять раз в 10 шагов, то уже ухудшения времени выполнения практически нет.. Но неплавно это получается, а "бесконечный" MarqueeProgressBar вообще теряет смысл.
Название: Re: TaskDialog оочень медленный
Отправлено: Александр Ривилис от 15-10-2015, 17:40:08
Ты при этом модифицируешь чертеж и вызываешь в коде периодически
? Если да, то понятно что это будет очень медленно.
Название: Re: TaskDialog оочень медленный
Отправлено: bargool от 15-10-2015, 18:06:19
Модифицирую чертёж в рамках одной транзакции, ни регена, ни QueueForGraphicsFlush не делаю. Просто последовательная обработка и модификация множества блоков
Название: Re: TaskDialog оочень медленный
Отправлено: Александр Ривилис от 15-10-2015, 21:57:31
Давай готовый пример проекта, который я смогу погонять. Если не найду как обойти эту проблему - отправлю в ADN DevHelp.
Название: Re: TaskDialog оочень медленный
Отправлено: bargool от 16-10-2015, 15:12:45