The IDLAsync classes allow you to specify units of work to execute asynchronously outside the main IDL session. To do this, create an IDLAsyncQueue and one or more IDLAsyncJob objects that encapsulate the work to be performed. As jobs are added to the queue, they will be executed at some point in the future as resources are available. When a job is complete, you can retrieve its results for further use. You can also construct an IDLAsyncJoin object and pass it into the jobs on creation. If you do this, you can wait on the join object for all of the jobs it observes to be finished before continuing.

IDL includes two fundamental job types:

There are further specializations of these job classes to facilitate the execution of an IDLTask in the IDL_IDLBridge (IDLAsyncBridgeTaskJob) or the IDL Task Engine (IDLAsyncSpawnTaskJob).