지오 프로세싱을 수행하는 클래스 라이브러리를 만들었습니다. 추가 기능은 비동기 프로세스 인 클래스를 호출합니다. 스레드가 STA이고 arcobjects가 스레드 안전하다는 것을 확인했습니다 (즉, addin에서 전달되지 않음). 모든 arcobjects는 스레드 내에서 작성됩니다.
이것은 클래스 라이브러리이기 때문에 winforms UI와 추가 기능으로 래핑했습니다. 두 코드 세트는 정확히 동일하며 테스트는 정확히 동일한 데이터를 사용하여 수행되었습니다. winform과 addin은 모두 원하는 결과로 코드를 완성하며 메모리 누수는 분명하지 않습니다. 추가 기능의 경우이 시점에서 맵 기간과 상호 작용하지 않으며 winforms 코드에도 매핑 또는 표시 요소가 없습니다.
유일한 UI 업데이트는 addin 및 UI 모두에서 진행률 대화 상자 업데이트입니다. 추가 기능이 고정 가능한 창 (사용자 정의 UI)을 사용하고 있습니다.
내가보고있는 문제는 라이브러리가 addin에서 호출 될 때 코드 실행이 winforms 응용 프로그램을 통해 호출 된 동일한 코드보다 5 배 느립니다.
왜 이런 일이 발생하는지 볼 수있는 곳에 대한 아이디어가 있습니까?
Activator.CreateInstance
또는을 사용하여 작성 중 new
입니까?