I would like my Python Toolbox to be processed in the background. On this ESRI Technical Support Page, it states "Since ArcGIS Pro is itself a 64-bit application, a separate process for background geoprocessing is no longer needed. Tools are run asynchronously, not on a separate task that appears in Task Manager, and allow work to continue in the application while they execute." I infer from that that I wouldn't need to do anything in order to enable my toolbox to run in the background.

However, it's curious to me in the default Python Toolbox, that self.canRunInBackground = False. Should I change that to True?

Code copied from .pyt generated when creating a new Python Toolbox in Pro:

class Tool(object):
    def __init__(self):
        self.label = "Tool"
        self.description = ""
        self.canRunInBackground = False

1 Answer 1


The simple answer is canRunInBackground doesn't do anything in ArcGIS Pro, because as you point out from that article, there is no separate background process to run in. So it doesn't matter if its set to true of false. ArcGIS Pro runs tools asynchronously, allowing you to continue interacting with the Map and all the other parts of ArcGIS Pro (basically like Background Processing)

To answer the next "why" is that value in the default toolbox? It's sort of a two part answer. Technically the python toolbox you build in ArcGIS Pro could work in ArcMap, thus the Background processing flag could apply if you shared your tool with an ArcMap user. However, I just checked, and as of ArcGIS Pro 3.2, that flag should be removed from the default toolbox.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.