コード例 #1
0
		public async Task<bool> TryGenerate(GeneratorParams parameters)
		{
			var batches = new Batch[parameters.BatchCount];

			await Task.Run(() =>
			{
				Parallel.For(0, parameters.BatchCount, i =>
				{
					batches[i] = batchCreator.CreateBatch(i.GetHashCode(), parameters);
				});
			});

			var batchesWithFileNames = batches.Select((batch, batchIndex) => new
			{
				Batch = batch,
				FilePath = MakeFinalFileName(batchIndex, batch, parameters)
			});

			return (await Task.WhenAll(batchesWithFileNames.Select(async item => new
			{
				Result = await batchWriter.TryWriteBatchFile(item.FilePath, item.Batch),
				Path = item.FilePath
			}))).All(item => item.Result);
		}