LongTask API provides utility features for long and asynchronous task execution.

The API can be used by any module to provide a safe way to execute a task in a background thread with native progress and cancellation support, as well as error management.

The LongTask interface must be implemented by classes which wants to add these features.