일단 언어는 swift긴 한데 C# 비동기랑 비슷하고 타 언어도 그럴 거라 예상을 함.

내가 이해가 안되는 점은 task를 cancel하게 되는 이?유 상?황 그리고 과정을 모르겠다.

Task 메소드로 보통 checkCancellation()같은 함수가 있잖아. 그럼 취소 행위 자체는 외부에서 전달받는다고 보면 됨? 캔슬 신호를 보내는 주체가 어디지? 함수를 실행시킨 상위 함수에서 캔슬 시그널을 던져 주는 건가?

만약 외부에서 던져준다고 하면 캔슬이 전달되기까지의 매커니즘이 뭐임? await 이후엔 어차피 실행이 suspend 정지?돼서 캔슬 여부를 판별못하지 않냐? 이미지를 다운로드하게 비동기 함수를 실행하고 10초가 지나면 타임아웃되게 할려면 내 머릿속엔 시간을 판별해서 캔슬 해 주는 비동기 함수B가 더 필요할 거 같음.

태스크가 자체적인 cancel()로 취소되지 않고 checkCacellation()으로 취소되게 만든 이유 즉, 실사용 사례를 잘 몰라서 이런 일이 생기는 거 같음. 혹시 간단하게 어떤 케이스가 있는 지 알려 줄 수 있을까...?