Использование памяти при обновлении метки с помощью элемента управления System.Windows.Forms.Timer - PullRequest
1 голос
/ 06 октября 2010

У меня есть форма с меткой, которая обновляется элементом управления 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?

1 Ответ

1 голос
/ 06 октября 2010

Означает ли это, что GC ожидает своего цикла 2 поколения и только затем собирает все строки, которые были значениями tlblRam.Text?

В основном да.Вероятно, будут еще некоторые вещи, требующие и освобождающие память в работающем приложении Windows.

Более важно: не волнуйтесь, здесь нет проблем.Не пытайтесь «помочь», запустив y = GC вручную, вам будет только хуже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...