コード例 #1
0
        private FileProgressReporter CreateFileProgressReporter()
        {
            var fileSize = 4000000000L + _random.Next(1000000000, int.MaxValue);

            var fileProgressReporter = new FileProgressReporter
            {
                FileName = $@"C:\{_random.Next()}.txt",
                FileSize = fileSize
            };

            Task.Run(() =>
            {
                long transferred = 0;

                while (transferred < fileSize && !_canceled)
                {
                    Thread.Sleep(100);
                    if (_continue)
                    {
                        var increase = _random.Next(1000000, 10000000);
                        transferred  = transferred + increase >= fileSize ? fileSize : transferred + increase;
                        Debug.WriteLine($"transferred: {transferred}");
                        fileProgressReporter.Report(transferred);
                    }
                }
            });
            fileProgressReporter.Start();
            return(fileProgressReporter);
        }
コード例 #2
0
        private static FileProgressReporter CreateFileProgressReporter()
        {
            const long FILE_SIZE = 6312487123;

            var fileProgressReporter = new FileProgressReporter
            {
                FileName = "C:\\a.txt",
                FileSize = FILE_SIZE
            };

            Task.Run(() =>
            {
                long transferred = 0;
                var random       = new Random(DateTime.Now.Millisecond);

                while (transferred < FILE_SIZE)
                {
                    Thread.Sleep(100);
                    var increase = random.Next(1000000, 10000000);
                    transferred  = transferred + increase >= FILE_SIZE ? FILE_SIZE : transferred + increase;
                    Debug.WriteLine($"transferred: {transferred}");
                    fileProgressReporter.Report(transferred);
                }
            });
            fileProgressReporter.Start();
            return(fileProgressReporter);
        }
コード例 #3
0
        public void ReportProgressTest()
        {
            var fileContent = "";
            var fileName    = "./TestFiles/GeneratedSampleLong.txt";
            var amount      = 100000;

            for (long i = 0; i < amount; i++)
            {
                fileContent += i + "\n";
            }

            File.WriteAllText(fileName, fileContent);

            var reporter = new FileProgressReporter();

            var parser  = new AsciiFileParser();
            var resFile = parser.ParseFile(
                fileName,
                reporter
                );

            Assert.AreEqual(amount, reporter.ReadLines);
        }