Активность диска Удаленный компьютер — отображение изменений активности в текстовом поле с помощью -Continuous

#c# #winforms #visual-studio

#c# #winforms #visual-студия #visual-studio

Вопрос:

Я разрабатываю панель мониторинга для просмотра данных удаленных компьютеров (Eventviewer, файлы в каталоге, запущенные задачи и т. Д.). Все это работает и отображается без проблем на приборной панели.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю командную кнопку, запускается код, показанный ниже, и он отображает активность диска для логического диска C: удаленного компьютера в текстовом поле txtDiskActivity.Текст на панели инструментов, но отображается только одна строка (просмотр изображения).

Отображение активности диска

 txtDiskActivity.Text = RunScript("Get-WmiObject -computername LT-WIN1064 -NameSpace root\CIMV2 -Class Win32_PerfRawData_PerfDisk_LogicalDisk | where name -eq C: | select AvgDisksecPerWrite, name");
  

Что я пытаюсь сделать, так это поддерживать выполнение этого кода, чтобы он мог продолжать показывать изменения активности диска для LogicalDisk, пока я не выйду из панели мониторинга.

Я пробовал использовать -Continuous и -SampleInterval 2 -MaxSamples 10, но я не могу заставить его работать.

Одним из условий является то, что мне нужно будет иметь возможность использовать другие элементы управления на панели инструментов во время выполнения этого кода.

Есть предложения?

С уважением

Ответ №1:

Я смог решить свою проблему, используя ТАЙМЕР, предложенный Сабахом Шариком @

Получить счетчик дисков, записать код активности для удаленного компьютера и постоянно обновлять его.

Я добавил таймер в форму, а затем добавил следующий код к таймеру:

 txtDiskActivity.Text = FunctionCall("Get-WmiObject -computername LT-WIN1064 -NameSpace root\CIMV2 -Class Win32_PerfRawData_PerfDisk_LogicalDisk | where name -eq C: | select AvgDisksecPerWrite, name");
  

Затем я добавил следующий код к кнопке Click:

  tmrDiskActivity.Interval = 1000;
 tmrDiskActivity.Start();
  

Когда я нажимаю кнопку, она начинает показывать активность диска в текстовом поле, и, что лучше всего, она не зависает на моей панели мониторинга.

С уважением,