Eu criei uma biblioteca de classes que faz algum geoprocessamento. O suplemento chama uma classe que é um processo assíncrono. Eu garanti que o thread é STA e os arcobjects são thread-safe (ou seja, não foram passados do addin). Todos os objetos de arco são criados dentro do encadeamento.
Por ser uma biblioteca de classes, envolvi-a em uma interface do winforms e também como um complemento. Ambos os conjuntos de códigos são exatamente os mesmos e o teste foi realizado usando exatamente os mesmos dados. Tanto o winforms quanto o addin completam o código com os resultados desejados e nenhum vazamento de memória é evidente. Para o caso do complemento, não há interação com o período do mapa neste momento e também não há elementos de mapeamento ou exibição no código do winforms.
as únicas atualizações da interface do usuário são a atualização de uma caixa de diálogo de progresso no suplemento e na interface do usuário. O complemento está usando uma janela acoplável (interface do usuário de controle do usuário).
O problema que estou vendo é que quando a biblioteca é chamada a partir do suplemento, a execução do código é 5x mais lenta que o mesmo código chamado pelo aplicativo winforms.
Alguma idéia de onde devo procurar para ver por que isso está ocorrendo?
Activator.CreateInstance
, ou com new
?