Quando o TaskCompletionSource <T> deve ser usado?

AFAIK, tudo o que sabe é que, em algum momento, seu SetResultou SetExceptionmétodo está sendo chamado para concluir o Task<T>exposto por meio de sua Taskpropriedade. Em outras palavras, ele atua como produtor de uma Task<TResult>e sua conclusão. Eu vi aqui o exemplo: Se eu precisar...