Вывод ОЗУ отдельного приложения winforms c#
System.Diagnostics.Process[] pr = Process.GetProcessesByName("Form1");
foreach (Process process in pr)
{
string memory = Convert.ToString(process.WorkingSet64 / 1024);
label1.Text = memory;
}
System.InvalidOperationException: "Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'label1' не из того потока, в котором он был создан."
Спустя время данный код выдает ошибку (каждый раз в разное время, иногда в начале, иногда поработает немного). Нужно узнать потребление ОЗУ и обновлять в реальном времени пока работает прога. Столкнулся с еще одной проблемой - показывает общее потребление ОЗУ, а не отдельного приложения.
Вердикт - я не знаю как доработать этот код и я запутался. Дошло до того, что у меня кое как работает если продублировать код в 2 методах))). Но это бред, так что хотелось бы вашей помощи с этим вопросом. Вывод ОЗУ отдельного приложения (не обязательно Form1, хочется, чтобы можно было выбрать там браузер и тд, но этим я уже сам займусь.)
Ответы (1 шт):
Попробуйте вот так заменить
label1.Text = memory;
На
Dispatcher.Invoke(() =>
{
label1.Text = memory;
});