Программа Windows Forms не отвечает (зависает)

Рейтинг: 0Ответов: 1Опубликовано: 23.05.2023

Через 5 минут после запуска программы из VS2022 в режиме Debug замирает лента памяти на вкладке Средства диагностики (последнее значение памяти 42 мб), при этом индикатор загрузки ЦП работает нормально. Диспетчер задач показывает, что программа использует 8% ЦП и 32 мб памяти. Программа примерно минут 30-40 рисует графики (хотя 2 нижних графика плохо обновляются) и сбрасывает данные в файл нормально. Примерно через час программа зависает и в диспетчере задач появляется надпись "Не отвечает". При этом в диспетчере потребление памяти 55 мб, а загрузка процессора - 18%. Я с помощью средств диагностики ранее нашел причину быстрого роста потребления памяти (забыл удалить точки графика при обновлении графика Points.Clear()), а вот как обнаружить причину зависания - не знаю. В программе использую BackgroundWorker для вывода на одну из вкладок графиков, а на другую вкладку - значений. Помогите, пожалуйста, советом, как найти причину зависания. Программа по ссылке https://disk.yandex.ru/d/Rq2gVIwkrTPs6A

Ответы

▲ 0
backgroundWorker1.ReportProgress(0, new ProgressData { Info = sb.ToString(), Data = volt, X = x });
sb.Clear(); // !!! - очистка памяти
-------
listSeries[i].Points.Clear(); // !!! - очистка памяти

Тогда программа работает нормально, не зависает