public void Run(int taskCount, long targetSize) { var fileName = Path.Combine(_filePath, _fileName); using (_streamWriter = File.AppendText(fileName)) { var generators = new List<GenerateSalesFile>(); var tasks = new List<Task>(); for (var x = 0; x < taskCount; x ++) { var targetLineCount = targetSize / taskCount; var salesKeySeed = targetLineCount * x + 1; var generator = new GenerateSalesFile(targetLineCount, salesKeySeed) { OnLineGenerated = LineGeneratedHandler, OnWriteDataToFile = WriteDataToFileHandler, }; generators.Add(generator); tasks.Add(new Task(generator.Run)); } tasks.ForEach(t => t.Start()); Task.WaitAll(tasks.ToArray()); } }
public void Run(int taskCount, long targetSize) { var fileName = Path.Combine(_filePath, _fileName); using (_streamWriter = File.AppendText(fileName)) { var generators = new List <GenerateSalesFile>(); var tasks = new List <Task>(); for (var x = 0; x < taskCount; x++) { var targetLineCount = targetSize / taskCount; var salesKeySeed = targetLineCount * x + 1; var generator = new GenerateSalesFile(targetLineCount, salesKeySeed) { OnLineGenerated = LineGeneratedHandler, OnWriteDataToFile = WriteDataToFileHandler, }; generators.Add(generator); tasks.Add(new Task(generator.Run)); } tasks.ForEach(t => t.Start()); Task.WaitAll(tasks.ToArray()); } }