#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();
Когда я нажимаю кнопку, она начинает показывать активность диска в текстовом поле, и, что лучше всего, она не зависает на моей панели мониторинга.
С уважением,