Example #1
0
        void Work()
        {
            List <string> OUT = new List <string>();

            RecordsReader reader = new RecordsReader(filePath);

            Stopwatch sw_total = new Stopwatch();

            sw_total.Start();

            int completed = 1;

            Parallel.For(0, reader.records.Count, i =>
            {
                if (!canceled)
                {
                    reader.records[i].Status = Requester.Send(reader.records[i].GetURL(), timeOut);

                    Logger.Log(string.Format("HOST {0} is {1}", reader.records[i].GetURL(), reader.records[i].Status));
                    Logger.Log(string.Format("[{0} of {1}] at [{2}] s", completed, reader.records.Count, sw_total.ElapsedMilliseconds / 1000));

                    completed++;
                    ProgressBarChanged(reader.records.Count);
                }
            });


            sw_total.Stop();

            Console.WriteLine("Total Time: [{0} s]", sw_total.ElapsedMilliseconds / 1000);
            Logger.Log(string.Format("Total Time: [{0} s]", sw_total.ElapsedMilliseconds / 1000));

            //foreach (var item in reader.records)
            //{
            //	Logger.Log(item.ToString());
            //}


            Output.InTXT(reader.records);
            PrintResult(reader.records);

            Logger.WriteLogs();
        }
Example #2
0
        public void TestReadBlocks()
        {
            string[] records = new []
            {
                "1. a",
                "2. b",
                "3. c"
            };

            MemoryStream  stream        = LinesToStream(records);
            int           sizeOfRecord  = System.Runtime.InteropServices.Marshal.SizeOf <Record>() + 2;
            RecordsReader recordsReader = new RecordsReader(new StreamReader(stream), sizeOfRecord * 2 + 1);

            Record[][] expectedRecordsPerBlock = new Record[][]
            {
                new Record[]
                {
                    new Record(1, "a"),
                    new Record(2, "b")
                },

                new Record[]
                {
                    new Record(3, "c")
                }
            };

            int i = 0;

            foreach (RecordsBuffer rb in recordsReader.ReadBlocks())
            {
                Assert.Equal(expectedRecordsPerBlock[i].Length, rb.Records.Count);

                for (int j = 0; j < rb.Records.Count; j++)
                {
                    Assert.Equal(expectedRecordsPerBlock[i][j], rb.Records[j]);
                }
                i++;
            }
        }