```pas type TAsyncCommand = class procedure DoInitCommand; virtual; end; ``` `DoInitCommand` ran in main thread before background thread start