Можно ли ускорить срабатывание ReadDwgFile? Или есть другие альтернативы?

Автор Тема: Можно ли ускорить срабатывание ReadDwgFile? Или есть другие альтернативы?  (Прочитано 15651 раз)

0 Пользователей и 6 Гостей просматривают эту тему.

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Как раз на ReadDwgFile и тормоза
Чистый AutoCAD, без приложений? Сервис паки установлены? Если все так, можно попробовать отключить антивирусник, посмотреть реакцию.
Если ничего не помогает, то принять и простить.

Можно попробовать загрузить данные во втором потоке, вдруг прокатит. Создать поток, создать в нем _fileDatabase, вызвать ReadDwgFile и по завершению вернуть _fileDatabase  в основной поток. В основном потоке пытаться что-то считать/модифицировать.

Оффлайн Алексей КуликАвтор темы

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Похоже, придется именно "принять и похоронить" :( Со многопоточностью я не дружу, к моему великому сожалению. Попробую, конечно, найти какие-нибудь примеры...
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 389
  • Карма: 21
Можно попробовать загрузить данные во втором потоке, вдруг прокатит. Создать поток, создать в нем _fileDatabase, вызвать ReadDwgFile и по завершению вернуть _fileDatabase  в основной поток. В основном потоке пытаться что-то считать/модифицировать.
По своему опыту могу сказать, что даже запуск в другом потоке любого приложения, из основного потока AutoCAD, а потом снова обращение к AutoCAD выдаёт ошибку. Только если сначала запускать выполнение AutoCAD, а потом других программ. У меня так работает AutoCAD, Excel. Но async/await ни при каких условиях не работает, только Parallel.Invoke.

Если нужна пакетная обработка, то можно посмотреть в сторону AcCoreConsole, но там тоже есть ограничения.

Оффлайн Алексей КуликАвтор темы

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Значит можно даже и не пытаться :) Спасибо ;)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Алексей Кулик,
А ты не пробовал использовать конструктор Database(false, false); ?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Значит можно даже и не пытаться  Спасибо
А попробовать с accoreconsole?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн doctorRAZ

  • ADN OPEN
  • Сообщений: 42
  • Карма: 0
  • Skype: doctorraz
А попробовать с accoreconsole?
по условиям задачи
В результате нескольких экспериментов на нескольких машинах. Ситуация повторяется на Win7 + ACAD2013. Win10 + ACAD20[19/20/21] - все работает шустро, как и должно. Получается, проблема в версии ACAD ?! А что мне делать, если надо именно под эту древнюю, как ***** мамонта, версию?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
doctorRAZ,
Не вижу противоречия - в AutoCAD 2013 есть своя AcCoreConsole.exe
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей КуликАвтор темы

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Алексей Кулик,
А ты не пробовал использовать конструктор Database(false, false); ?
Попробую, но уже завтра. На данный момент нет ни данных, ни сил, не желания ковыряться ;) Но обязательно попробую, спасибо!
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!