Last Updated: May 22, 2026
A Task is C#'s standard handle to a unit of work that's either running, scheduled to run, or already finished. Every async method you've seen returns one, every parallel call you make uses one, and almost everything in the System.Threading.Tasks namespace is built around them. This lesson covers what a Task actually represents, the difference between Task and Task<T>, the lifecycle a task moves through, the standard ways to create them, and the inspection properties and blocking pitfalls every C# developer eventually runs into.