/// <summary> アップロード済みのファイルのハッシュデータ取得. </summary> private async Task <Dictionary <string, string> > GetUploadedObjectHashTable(S3Client s3Client, S3Object[] s3Objects) { var hashTable = new Dictionary <string, string>(); var tasks = new List <Task>(); foreach (var s3Object in s3Objects) { var task = Task.Run(async() => { var metaDataResponse = await s3Client.GetObjectMetaData(s3Object.Key); var fileHash = metaDataResponse.Metadata[MetaDataHashKey]; lock (hashTable) { hashTable[s3Object.Key] = fileHash; } }); tasks.Add(task); } await Task.WhenAll(tasks.ToArray()); return(hashTable); }