An object-oriented and type-safe programming language that has its roots in the C family of languages and includes support for component-oriented programming.
I recommend you to go through the following article that explains why you should not bother disposing task objects.
https://devblogs.microsoft.com/pfxteam/do-i-need-to-dispose-of-tasks/
Regarding using the same variable, for task1, 2 & 3, it is possible. you can have a Task variable say "task" of type Task and use it.
Hope this helps