public BacklogItem(IRedisCommand redisCommand, CancellationToken cancellationToken, TaskCompletionSource <T> taskCompletionSource, AbstractResultProcessor <T> abstractResultProcessor, Client.RedisClient redisClient, PipeReader pipe) { RedisCommand = redisCommand; CancellationToken = cancellationToken; TaskCompletionSource = taskCompletionSource; AbstractResultProcessor = abstractResultProcessor; RedisClient = redisClient; PipeReader = pipe; }
public async Task SetResult() { try { var result = await AbstractResultProcessor.Start(RedisClient, PipeReader, CancellationToken); TaskCompletionSource.TrySetResult(result); } catch (OperationCanceledException) { TaskCompletionSource.TrySetCanceled(); throw; } catch (Exception e) { TaskCompletionSource.TrySetException(e); throw; } }