Код нужно писать не в "формах", а в отдельных классах, которые, возможно, генерируют события, которые обрабатывают другие классы обработчики, а всё это дело можно поместить уже хоть в ту же "форму" и то не факт, что стоит. Например, класс читатель, класс писатель. В двух словах не объяснишь, там нужно чётко понимать задачу для начала.
Unmaskedguy, замедляется, похоже, потому что объект Changes имеет тип List, а искать каждый раз в пополняющемся списке всё дольше и дольше. Метод Find в классе List обходит во время поиска весь массив по новой каждый его вызов, пока не найдёт искомое значение.
Где вы такой стиль оформления кода взяли? Всё не по канонам :).
Скиньте проект на bitbucket или github и дайте ссылку или залейте на какой-нибудь облачный сервис.
И скажите, вам точно нужна помощь, чтобы я впустую не тратил кучу времени, а вы не воспользовались кодом.
Денис Бредун, есть книга: "CLR via C# - Программирование на платформе Microsoft.NET Framework 4.5 на языке C#. 4-е издание". Там много деталей описано, что и как устроено. Возможно есть что-то новее, я просто не в курсе.
Денис Бредун, вот из доков:
Как и в случае с типами всех классов, сведения о типе для статического класса загружаются средой выполнения .NET, когда загружается программа, которая ссылается на класс. Программа не может точно указать, когда загружается класс. Однако гарантируется загрузка этого класса, инициализация его полей и вызов статического конструктора перед первым обращением к классу в программе. Статический конструктор вызывается только один раз, и статический класс остается в памяти на время существования домена приложения, в котором находится программа.
Денис Бредун, да и вообще звучит странно, что если ты не создал экземпляр класса (объект), то это тип. В смысле это тип? Если ты не создал экземпляр класса, то ты его просто не создал, а class или struct в любом случае остаётся типом, просто ты можешь создать из них экземпляры, в случае с классом в куче, а со структурой на стеке.
Денис Бредун, я это написал автору ответа, потому что то, что он написал звучит странно хотя бы потому, что нельзя создать экземпляр статического класса явно (через new). А он пишет так, как будто можно.
Первое на что тебе нужно обратить внимание -- это на типы значений (Value Type) и ссылочные типы (Reference Type). Это прямо основа, которую нужно хорошо понимать. Где в метод копируется ссылка, а где всё значение. Что такое стек и что такое куча (Heap).