Saya telah membuat perpustakaan kelas yang melakukan beberapa geoproses. Addin memanggil kelas yang merupakan proses async. Saya telah memastikan utasnya adalah STA dan arcobjects adalah utas yang aman (mis. Tidak lulus dari addin). Semua arcobjects dibuat di dalam utas.
Karena ini adalah perpustakaan kelas saya membungkusnya dalam UI winforms dan juga sebagai addin. Kedua set kode sama persis dan pengujian dilakukan dengan menggunakan data yang sama persis. Baik winforms dan addin melengkapi kode dengan hasil yang diinginkan dan tidak ada kebocoran memori yang jelas. Untuk kasus addin tidak ada interaksi dengan periode peta pada saat ini dan tidak ada pemetaan atau elemen tampilan dalam kode winforms.
satu-satunya pembaruan UI adalah pembaruan dialog progres di addin dan UI. Addin menggunakan jendela dockable (kontrol pengguna ui).
Masalah yang saya lihat adalah ketika perpustakaan dipanggil dari addin, eksekusi kode lebih lambat 5x dari kode yang sama dipanggil melalui aplikasi winforms.
Adakah ide tentang di mana saya dapat melihat mengapa hal ini terjadi?
Activator.CreateInstance
, atau dengan new
?