文書化して、次のコードを書き換えます。

private AsyncタスクSetAndgetKeySpipelabacth（int数量、stringdto teststringdto）
{
var salt = guid.newguid（）。toString（）;
var stopwatch = new StopWatch（）;
stopwatch.start（）;
var batch = _db.createBatch（）;
var tasks = new list <cask>（）;
for（int i = 1; i <=数量; i ++）
{
var instrunamekey = new Rediskey（$ "命令：{salt} _ {i}：name"）;
tasks.add（batch.stringsetasync（instrumentornamekey、$ "instructor name {salt} _ {i}"））;
tasks.add（batch.stringgetasync（instruntornamekey）
.continuewith（x => teststringdto.instructors.add（$ "{x.Result}"）））;
}

batch.exute（）;
タスクを待っています。いつ（タスク）。
stopwatch.stop（）;
testStringdto.timeseconds = stopwatch.lapced.totalseconds.tostring（cultureinfo.invariantculture）;
}
Reescribe el siguiente código documentándolo:

private async Task SetAndGetKeysPipelineBacth(int quantity, StringDTO testStringDTO)
		{
			var salt = Guid.NewGuid().ToString();
			var stopwatch = new Stopwatch();
			stopwatch.Start();
			var batch = _db.CreateBatch();
			var tasks = new List<Task>();
			for (int i = 1; i <= quantity; i++)
			{
				var instructorNameKey = new RedisKey($"instructors:{salt}_{i}:name");
				tasks.Add(batch.StringSetAsync(instructorNameKey, $"Instructor Name {salt}_{i}"));
				tasks.Add(batch.StringGetAsync(instructorNameKey)
					.ContinueWith(x => testStringDTO.Instructors.Add($"{x.Result}")));
			}

			batch.Execute();
			await Task.WhenAll(tasks);
			stopwatch.Stop();
			testStringDTO.TimeSeconds = stopwatch.Elapsed.TotalSeconds.ToString(CultureInfo.InvariantCulture);
		}