I think there's a disconnect here. There is really just no way that a task calling an async
method on an object is not going to keep that object alive while the task is active. There's no way to express what you want with async
functions. You need to be cancelling tasks independently of object lifetime. We can try to figure out ways to make that easier, maybe even implicit somehow, but I don't think fighting the natural lifetime rules of functions is the right approach.
2 Likes