Exemple #1
0
        public WithinSentRequest <TRequest> Receive <T>(SelectiveConsumer <T> consumer)
        {
            PendingReceive receive = _inbox.Receive <T>(candidate =>
            {
                Consumer <T> accepted = consumer(candidate);
                if (accepted == null)
                {
                    return(null);
                }

                return(message =>
                {
                    accepted(message);

                    _receives.CancelAll();

                    _handled = true;
                });
            }, _timeout, HandleTimeout);

            _receives.Add(receive);

            return(this);
        }
Exemple #2
0
 void CancelPendingReceives()
 {
     _pending.CancelAll();
 }