Утечка памяти - C# (187838)

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

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

Здравствуйте. Навоял такой вот кодик. Когда много файлов в директории dir, происходит утечка памяти, т.е. программа постоянно начинает есть всё больше и больше; как я на Новый Год :-) Помогите, пожалуйста, разобраться. Спасибо!
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using System.Windows.Forms;
  8.  
  9. namespace ConsoleApplication1
  10. {
  11. class Program
  12. {
  13.  
  14. static void Main(string[] args)
  15. {
  16. IEnumerable<string> lines1 = File.ReadAllLines("new.txt").AsEnumerable<string>();
  17.  
  18. DirectoryInfo dir = new DirectoryInfo(Application.StartupPath+"\\dir");
  19. foreach (var item in dir.GetFiles())
  20. {
  21. var lines2 = File.ReadAllLines("dir\" + item.Name).ToArray();
  22. lines1 = lines1.Except<string>(lines2);
  23. }
  24. File.AppendAllLines("out.txt", lines1);
  25. }
  26. }
  27. }

Решение задачи: «Утечка памяти»

textual
Листинг программы
  1. string[] lines1 = File.ReadAllLines("new.txt");
  2.  
  3. string dir = Path.Combine(Application.StartupPath, "dir");
  4. foreach (string name in Directory.EnumerateFiles(dir))
  5. {
  6.     var lines2 = File.ReadLines(name);
  7.     lines1 = lines1.Except(lines2).ToArray();
  8.     if (lines1.Length == 0) break;
  9. }
  10.  
  11. File.AppendAllLines("out.txt", lines1);

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


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

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

15   голосов , оценка 3.6 из 5

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

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

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