Reading the async book, I see:
!Unpintype to the heap gives our data a stable address so we know that the data we point to can't move after it's pinned. In contrast to stack pinning, we know that the data will be pinned for the lifetime of the object.
But I don't fully understand. Why is pinning on the heap different than pinning on the stack? I've read that chapter of the book a few times, can someone please elaborate?