LongTask adds functionalities to any class that wants to be progressable and cancellable.
These tasks can be executed in a LongTaskExecutor.
LongTaskExecutor