internal static MessagePump StartNew(BlockingCollection <IMessageDescriptor> messages, IObserver <IMessageDescriptor> observer) { Contract.Requires(messages != null); Contract.Requires(observer != null); Contract.Ensures(Contract.Result <MessagePump>() != null); var messagePump = new MessagePump(messages, observer); messagePump.Start(); return(messagePump); }
public IDisposable Subscribe(IObserver <IMessageDescriptor> observer) => MessagePump.StartNew(messages, observer);