У меня есть форма с меткой, которая обновляется элементом управления System.Windows.Forms.Timer каждые 2 секунды. В диспетчере задач я вижу, что использование памяти растет, даже если программа ничего не делает (но метка все еще обновляется с использованием последней информации, например, использования памяти). Пример кода для текста метки:
tlblRam.Text = string.Format("Ram: {0} MB", ConvertBytesToMegabytes(System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64).ToString("0.00"));
Но если я заставлю GC собрать поколения - он вернет всю память в более низкое состояние. Также это делается автоматически через ~ 5 минут неактивной работы программы. Означает ли это, что GC ожидает своего цикла 2 поколения и только потом собирает все строки, которые были значениями tlblRam.Text?