Resulta que la mejor manera de ejecutar las tareas largas en ArcMap es el uso de la IProgressDialog2. El BackgroundWorker en combinación con ArcObjects (STA Hilos) es un desastre.
Sin embargo, parece que la única aplicación de ESRI es el IStepProgressor. En mi caso no lo necesito y no quiero mostrar una barra de progreso. Por otra parte, no necesito el botón de cancelar. Es allí una manera de eliminar tanto las cosas? Sólo quiero el texto y el círculo como se puede ver en mi pantalla
public static void ShowProgressDialog<T>(string message, Action<T> action, T arg)
{
ESRI.ArcGIS.esriSystem.ITrackCancel trackCancel = new ESRI.ArcGIS.Display.CancelTrackerClass();
ESRI.ArcGIS.Framework.IProgressDialogFactory progressDialogFactory = new ESRI.ArcGIS.Framework.ProgressDialogFactoryClass();
// Set the properties of the Step Progressor
System.Int32 int32_hWnd = ArcMap.Application.hWnd;
ESRI.ArcGIS.esriSystem.IStepProgressor stepProgressor = progressDialogFactory.Create(trackCancel, int32_hWnd);
ESRI.ArcGIS.Framework.IProgressDialog2 progressDialog2 = (ESRI.ArcGIS.Framework.IProgressDialog2)stepProgressor; // Explict Cast
progressDialog2.CancelEnabled = false;
progressDialog2.Description = message;
progressDialog2.Animation = ESRI.ArcGIS.Framework.esriProgressAnimationTypes.esriProgressSpiral;
action.Invoke(arg);
trackCancel = null;
progressDialog2.HideDialog();
progressDialog2 = null;
}