Some scenarios do not rely on the main process, you can use tasks directly to achieve similar functions. The framework provides developers with both coroutine and asynchronous tasks. Remember that whether it is a coroutine task or an asynchronous task, the operations in the task only support coroutines, and can only use all the IO operations encapsulated by the framework (database, cache...)
The task of the coroutine task does not block the main process as a coroutine call, and is generally used for scenarios that need to wait for the result of the task to return.
In some scenarios, the main process does not care about the results of task execution, and asynchronous tasks can be used at this time.