public async void Run(CancellationToken token, Func <IEvent, Task> dispatcher) { var reader = await _client.GetMessageReaderAsync(_stream); var pump = reader.CreatePump(token, 0, 100000, 0); pump.OnMessage(message => dispatcher(_deserializer(message.Value))); }
private async void Run(CancellationToken token, Func <IEvent, Task> dispatcher, Action <Exception> onError, Action onCompleted) { var current = _checkpointWriter.GetOrInitPosition(); var reader = await _client.GetMessageReaderAsync(_stream); Task.Factory.StartNew(() => FetchMessages(token, dispatcher, onError, onCompleted, reader, current) , TaskCreationOptions.LongRunning); }