A simple TAwaitable event triggered by just calling a trigger() method.
Translates TAwaitable events into dummy messages on a socket that can be used e.g. to wake up from a select() call.
An event that can occur at some point in the future and which can be awaited, either by blocking until it occurs, or by registering a callback delegate.