private void SetParams(RankParserParams parametr) { _metricParser.CF_TF = parametr.CF_TF; _metricParser.DA_PA = parametr.DA_PA; _timeout = parametr.TimeOut; _streamsCount = parametr.ThreadCount; }
public async void Parse(RankParserParams parametr) { _result = new ConcurrentQueue <string>(); _domains = new ConcurrentQueue <string>(_csvReaderWriter.ReadFile(parametr.FilePath)); List <Task> tasks = new List <Task>(); _pauseToken = true; _cancelToken = true; _saver = true; SetParams(parametr); StartParsing?.Invoke(_domains.Count, _streamsCount, _timeout); _result.Enqueue("Url" + _parser.BuildHeader() + _metricParser.BuildHeader()); for (int i = 0; i < _streamsCount; i++) { tasks.Add(startTask()); } await Task.WhenAll(tasks); if (_saver) { if (_csvReaderWriter.Write(_savefilepath, new TextFromListGetter(_result.ToList()))) { MessageBox.Show("Done"); } } ParsingEnd?.Invoke(); foreach (var item in tasks) { item.Dispose(); } }