# Sample: writing your own Task from scratch

MyThreadPool and MyTask are a working reimplementation of the two pieces async/await sits on top of:
a queue of work items with ExecutionContext flow, and a promise object with a state, a result and a
continuation. MyTask is awaitable, so the C# compiler drives it exactly like a real Task.

    cd MyTasks
    dotnet run -c Release
