9 votos

ArcObjects ejecutando en Complemento más lento?

He creado una biblioteca de clases con algunos de geoprocesamiento. El complemento se llama a una clase que es asincronica proceso. Me han asegurado que el hilo es STA y la arcobjects son seguros para subprocesos (es decir. no pasa del complemento). Todos arcobjects se crean dentro de la rosca.

Debido a que esta es una biblioteca de clase me envolvió en una winforms interfaz de usuario y también como un complemento. Ambos conjuntos de código son exactamente los mismos y la prueba se realiza utilizando los mismos datos. Tanto el winforms y complemento de completar el código con los resultados deseados y no hay pérdidas de memoria son evidentes. Para el caso de que el complemento no hay ninguna interacción con el mapa período en este punto y no hay ninguna asignación o los elementos de la pantalla en la winforms código.

la única interfaz de usuario actualizaciones la actualización de un diálogo de progreso en tanto el complemento y la interfaz de usuario. El complemento es el uso de una ventana acoplable (control de usuario interfaz de usuario).

El problema que yo veo es cuando la biblioteca se llama desde el complemento, la ejecución de código es 5 veces más lento que el mismo código de llamada a través de la aplicación de winforms.

Alguna idea sobre dónde podría mirar a ver por qué está sucediendo esto?

1voto

Berend Puntos 587

Al comparar ambas versiones, puede ser de tiempo más que el de geoprocesamiento tiempo.

Tal vez hay algunos procedimientos de inicialización se ejecuta en la aplicación independiente que se han realizado ya en ArcMap en el inicio, por ejemplo, la creación de MxDocument objeto de licencia, el pago, la creación de cero GDB, etc.

También podría haber una diferencia en la .NET Framework versión utilizada en ArcMap y su aplicación de escritorio (Aunque no veo que causando una 5x desaceleración).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X