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

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

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

Здравствуйте. Навоял такой вот кодик. Когда много файлов в директории dir, происходит утечка памяти, т.е. программа постоянно начинает есть всё больше и больше; как я на Новый Год :-) Помогите, пожалуйста, разобраться. Спасибо!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Windows.Forms;

namespace ConsoleApplication1
{
    class Program
    {

        static void Main(string[] args)
        {
            IEnumerable<string> lines1 = File.ReadAllLines("new.txt").AsEnumerable<string>();

            DirectoryInfo dir = new DirectoryInfo(Application.StartupPath+"\\dir");
         
            foreach (var item in dir.GetFiles())
            {
               
                var lines2 = File.ReadAllLines("dir\" + item.Name).ToArray();
                lines1 = lines1.Except<string>(lines2);
            }
 
           File.AppendAllLines("out.txt", lines1);
 
        }
 
    }
}

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

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

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


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

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

15   голосов , оценка 3.6 из 5
Похожие ответы