[This is preliminary documentation and subject to change.]
Custom actions that are implemented as a DLL or an EXE can be invoked either synchronously or asynchronously. For a synchronous process, the installer waits for the action to complete before installation continues. For an asynchronous process, the custom action runs as a separate thread while installation continues.