public SqlCommandBus(Func<SqlConnection> connectionFactory) { _connectionFactory = connectionFactory; _messageAdded = new LazyPublisher<SqlCommandMessage>(observer=> { var isDisposed = false; _pollDbTask = _pollDbTask.ContinueWith(t => TplHelper.DoWhile(() => PollDb(observer).ThenDelay(PollDbInterval), _ => !isDisposed)).Unwrap(); _dbGcTask = _dbGcTask.ContinueWith(t => TplHelper.DoWhile(() => DbGc().ThenDelay(DbGcInterval), _ => !isDisposed)).Unwrap(); return Disposable.Create(() => isDisposed = true); }); }
public SqlCommandBus(Func <SqlConnection> connectionFactory) { _connectionFactory = connectionFactory; _messageAdded = new LazyPublisher <SqlCommandMessage>(observer => { var isDisposed = false; _pollDbTask = _pollDbTask.ContinueWith(t => TplHelper.DoWhile(() => PollDb(observer).ThenDelay(PollDbInterval), _ => !isDisposed)).Unwrap(); _dbGcTask = _dbGcTask.ContinueWith(t => TplHelper.DoWhile(() => DbGc().ThenDelay(DbGcInterval), _ => !isDisposed)).Unwrap(); return(Disposable.Create(() => isDisposed = true)); }); }