Разбор методов реализованных в проекте и разьяснение части кода - C#

Узнай цену своей работы

Формулировка задачи:

Программа предназначенна для чтения файлов логов, больших обьемов, я не сосвсем понимаю как она работает и не могу разобраться с лябда выражениями. Есть конкретные вопросы по кускам кода.
Листинг программы
  1. /// <summary>
  2. /// Цикл построчного чтения логов
  3. /// </summary>
  4. private void ReadLoop(CancellationToken token)
  5. {
  6. Task.Factory.StartNew(() =>
  7. {
  8. try
  9. {
  10. while (!_reader.EndOfStream)
  11. {
  12. if (token.IsCancellationRequested)
  13. {
  14. return;
  15. }
  16. if (_rawLogs.Count >= _logOptions.ReadAmount)
  17. {
  18. continue;
  19. }
  20. _rawLogs.Add(_reader.ReadLine(), token);
  21. }
  22. }
  23. catch (ObjectDisposedException)
  24. {
  25. }
  26. }, token);
  27. }
Листинг программы
  1. /// <summary>
  2. /// Цикл склеивания записей логов
  3. /// </summary>
  4. private void StickLoop(CancellationToken token)
  5. {
  6. Task.Factory.StartNew(() =>
  7. {
  8. string logEntry = string.Empty;
  9. while (true)
  10. {
  11. try
  12. {
  13. if (token.IsCancellationRequested)
  14. {
  15. break;
  16. }
  17. if (_stuckLogs.Count >= _logOptions.ReadAmount)
  18. {
  19. continue;
  20. }
  21. string logLine;
  22. if (!_rawLogs.TryTake(out logLine)) continue;
  23. if (_logFilter.IsLogHeadLine(logLine))
  24. {
  25. _stuckLogs.Add(logEntry, token);
  26. logEntry = logLine;
  27. }
  28. else
  29. {
  30. logEntry += $"{Environment.NewLine}{logLine}";
  31. }
  32. }
  33. catch (ObjectDisposedException)
  34. {
  35. }
  36. }
  37. }, token);
  38. }
Листинг программы
  1. public LogFilter(string timeFilter, string typeFilter, string systemFilter)
  2. {
  3. _isLogLineRegex = new Regex(LogPattern);//Инициализирует новый экземпляр Regex для указанного регулярного выражения.
  4. if (timeFilter == null && typeFilter == null && systemFilter == null)
  5. {
  6. _isMatchFilter = s => true;
  7. return;
  8. }
  9. if (timeFilter != null && typeFilter == null && systemFilter == null)
  10. {
  11. _isMatchFilter = s => s.StartsWith(timeFilter);
  12. return;
  13. }
  14. if (!string.IsNullOrEmpty(typeFilter) && typeFilter.Length > 1)
  15. {
  16. _isMatchFilter = s => false;
  17. return;
  18. }
  19. _isMatchFilter = s =>
  20. {
  21. var groups = _isLogLineRegex.Match(s).Groups;
  22. return groups[2].Value.StartsWith(timeFilter ?? string.Empty) &&
  23. (string.IsNullOrEmpty(typeFilter) || groups[3].Value == typeFilter) &&
  24. groups[4].Value.StartsWith(systemFilter ?? string.Empty);
  25. };
  26. }
весь проект прикреплен во вложении и вопрос какими методами реализованно данное приложение ?

Решение задачи: «Разбор методов реализованных в проекте и разьяснение части кода»

textual
Листинг программы
  1.  catch (ObjectDisposedException)
  2.                     {
  3.  
  4.                     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы