public async void Parse(WhoisParameters 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()); 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(); } }
private void SetParams(WhoisParameters parametr) { _timeout = parametr.TimeOut; _streamsCount = parametr.ThreadCount; _parser.CreationData = parametr.CreationDate; _parser.ExpiryData = parametr.ExpiryDate; _parser.DomainAge = parametr.DomainAge; _parser.ServerName1 = parametr.ServerName1; _parser.ServerName2 = parametr.ServerName2; }