Multithreading for responsive WPF

12-03-2013 05:04 AM
New Contributor
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?
0 Kudos
1 Reply
Regular Contributor III
One solution is to move the processing to another process.  Doing that will keep your UI responsive.

It is a common computing pattern to convert multi-threading problems into multi-process problems.
0 Kudos