LongTask adds functionalities to any class that wants to be progressable and cancellable.

These tasks can be executed in a LongTaskExecutor.