ArcGIS Pro 3.0 API Reference Guide
ArcGIS.Desktop.Framework.Threading.Tasks Namespace / QueuedTask Class / Run Method / Run(Action,CancelableProgressor,TaskCreationOptions) Method
Example

In This Topic
    Run(Action,CancelableProgressor,TaskCreationOptions) Method
    In This Topic
    Queue a new cancelable task to the framework dispatcher thread using the specified progressor.
    Syntax
    Public Overloads Shared Function Run( _
       ByVal action As Action, _
       ByVal progressor As CancelableProgressor, _
       Optional ByVal creationOptions As TaskCreationOptions _
    ) As Task

    Parameters

    action
    progressor
    creationOptions
    Example
    Progressor - Cancelable
    public async Task Progressor_Cancelable()
    {
      ArcGIS.Desktop.Framework.Threading.Tasks.CancelableProgressorSource cps =
        new ArcGIS.Desktop.Framework.Threading.Tasks.CancelableProgressorSource("Doing my thing - cancelable", "Canceled");
    
      int numSecondsDelay = 5;
      //If you run this in the DEBUGGER you will NOT see the dialog
    
      //simulate doing some work which can be canceled
      await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
      {
        cps.Progressor.Max = (uint)numSecondsDelay;
        //check every second
        while (!cps.Progressor.CancellationToken.IsCancellationRequested)
        {
          cps.Progressor.Value += 1;
          cps.Progressor.Status = "Status " + cps.Progressor.Value;
          cps.Progressor.Message = "Message " + cps.Progressor.Value;
    
          if (System.Diagnostics.Debugger.IsAttached)
          {
            System.Diagnostics.Debug.WriteLine(string.Format("RunCancelableProgress Loop{0}", cps.Progressor.Value));
          }
          //are we done?
          if (cps.Progressor.Value == cps.Progressor.Max) break;
          //block the CIM for a second
          Task.Delay(1000).Wait();
    
        }
        System.Diagnostics.Debug.WriteLine(string.Format("RunCancelableProgress: Canceled {0}",
                                            cps.Progressor.CancellationToken.IsCancellationRequested));
    
      }, cps.Progressor);
    }
    Requirements

    Target Platforms: Windows 11, Windows 10, Windows 8.1

    See Also