[C#] получить текущую тактовую частоту процессора в режиме реального времени
Всем привет!
У меня есть проблема в моих проектах. Надеюсь, кто-нибудь сможет мне помочь! Большое спасибо.
Я хочу получить текущие часы процессора в режиме реального времени (обновление каждую секунду), чтобы построить график.
Я создаю таймер с интервалом 1000 миллисекунд, внутри функции Timer_Tick() я использую этот код, чтобы получить текущую тактовую частоту процессора (ГГц):
foreach (ManagementObject search in win32proc.Get()) currclock = Convert.ToDouble(search["CurrentClockSpeed"]) / 1000.0; //Current Clock (GHz)
Он работает нормально, тактовая частота обновляется 1 раз/сек. Но это заставляет мое приложение казаться "замороженным"; я не могу нажать ни на одну кнопку или закрыть приложение.
Надеюсь, что кто-нибудь может помочь мне решить эту проблему или показать мне другой способ получить текущую тактовую частоту процессора в режиме реального времени.
Все равно спасибо!
--------------------
Решение:
Создайте фоновый рабочий поток, чтобы получить текущую тактовую частоту, он работает независимо с потоком пользовательского интерфейса.
Для всех, кто хочет узнать о фоновом работнике: Потоки BackgroundWorker и поддержка отмены[^]
[no name]
Поскольку Windows не является операционной системой реального времени, лучшее, что вы можете сделать, - это получить эту информацию, когда Windows позволит вам это сделать. Если ваше приложение "замораживается", то используйте фоновый поток.