A
sender is a factory for one or more asynchronous operations
. Connecting a sender and a receiver creates
an asynchronous operation
. The asynchronous operation's associated receiver is equal to
the receiver used to create it, and
its associated environment is equal to
the environment associated with the receiver used to create it
. The lifetime of an asynchronous operation's associated operation state
does not depend on the lifetimes of either the sender or the receiver
from which it was created
. A sender is started when it is connected to a receiver and
the resulting asynchronous operation is started
. A sender's async result is the async result of the asynchronous operation
created by connecting it to a receiver
. A sender sends its results by way of the asynchronous operation(s) it produces,
and a receiver receives those results
. A sender is either valid or invalid;
it becomes invalid when its parent sender (see below) becomes invalid
.