Изучение C #, WPF. Я столкнулся с проблемой, которую не могу решить с помощью одного исследования.
Я хочу обновить текст элемента управления textbox из другого потока, который присутствует в другом классе.
Я знаю, что поток запущен, работает и содержит данные, которые я могу использовать для заполнения текстового поля. То, что я не могу понять, это как обратиться к элементу управления текстового поля в графическом интерфейсе из второго потока.
Элемент управления моего текстового поля называется «txt_CPU», и я хочу, чтобы в нем появился «cpuCount». Я уверен, что мне нужно использовать делегирование, но я не могу связать примеры с моим кодом.
Помощь приветствуется. (Я уверен, что в моем коде могут быть другие «проблемы», это грубое изучение в процессе)
Итак, у нас есть создание потока.
public MainWindow()
{
InitializeComponent();
//start a new thread to obtain CPU usage
PerformaceClass pc = new PerformaceClass();
Thread pcThread = new Thread(pc.CPUThread);
pcThread.Start();
}
Класс, который он называет
public class PerformaceClass
{
public string getCPUUsage()
{
PerformanceCounter cpuCounter;
cpuCounter = new PerformanceCounter();
cpuCounter.CategoryName = "Processor";
cpuCounter.CounterName = "% Processor Time";
cpuCounter.InstanceName = "_Total";
return cpuCounter.RawValue.ToString() + "%";
}
public void CPUThread()
{
PerformaceClass PC = new PerformaceClass();
int i = 0;
while (i < 5)
{
string cpuCount = PC.getCPUUsage();
i++;
System.Threading.Thread.Sleep(500);
// MessageBox.Show(cpuCount);
}
}
}