проблема не в вычислениях в потоке
а в доступе к данным ArcGIS из дополнительного потока
собственно, код, который я привел в самом начале - это все, что нужно для получения эффекта
я из этого кода ничего не выкидывал, кроме заполнения своих внутренних данных - но это в данном случае непринципиально
то есть практически ничего делать и не надо: открыть сессию, получить курсор и просто по нему пройти через цикл for (никаких полей и читать не надо)
процессор, само собой, многоядерный
приоритет не трогал
точнее, даже как-то пытался его поднять - безуспешно, поэтому код смены приоритета убрал
и в дополнительном потоке кроме чтения я ничем больше не занимаюсь
а, вот прочитал внимательно фразу: "считаю в ОСНОВНОМ потоке"
а у меня-то вся работа, которая приводит к торможению, идет в ДОПОЛНИТЕЛЬНОМ
причем тормозит именно дополнительный поток, основной работает нормально
похоже, что ArcMap как-то пытается синхронизировать доступ к данным