# Sample: Task vs ValueTask and IValueTaskSource

AsyncManualResetEvent is an event you can await with no allocation per wait. It implements IValueTaskSource
on top of ManualResetValueTaskSourceCore, which is the pattern the BCL itself uses for Socket and Stream.

The tests cover the rules that come with a source backed ValueTask.

    cd ValueTasks.Tests
    dotnet run -c Release
