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(); }
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++; } }