I'm working on a VB.Net WPF Application using the ArcGIS SDK for version 10.1. I have a long running process working on our data, and I want to keep a responsive UI during this process in WPF. I seem to be stuck between a rock and a hard place as any feature that I add that doesn't freeze the UI causes the performance to drop dramatically.
So far I have tried:
No multi-threading - Freezes UI
Invoke Delegate - Freezes UI
Background Worker - Doesn't work as it tries to invoke ArcGIS in MTA mode.
New STA Thread - Causes performance to drop dramatically (up to 50 times as long to execute something as without multi-threading).
From what I read online I could add "<STAThread()>" to the Main in a console application to speed it up, but there is no "Main" in the WPF as it works more like a form. Adding that to all the relevant subs and functions also did nothing.
Is it possible to get both a responsive UI and fast executing ArcObjects? If so, how would I do that?