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());
            }
        }
Example #2
0
        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());
            }
        }