Я создаю программу, которая будет контролировать использование компьютера.Часть этой программы требует, чтобы я всегда знал, что такое окно переднего плана.Это достигается с помощью этого кода:
// Returns the name of the process owning the foreground window.
private static Process GetForegroundProcess()
{
try
{
IntPtr hwnd = GetForegroundWindow();
// The foreground window can be NULL in certain circumstances,
// such as when a window is losing activation.
uint pid;
GetWindowThreadProcessId(hwnd, out pid);
Process p = Process.GetProcessById((int)pid);
return p;
}
catch (Exception)
{
return null;
}
}
Проблема, с которой я сталкиваюсь, - это потребление ресурсов процессора.Это постепенно использует весь мой процессор, потому что он вызывается в тикере, который тикает каждую секунду.Тикать каждую секунду необходимо для основных функций в программе.
Тогда у меня возникнет вопрос: есть ли способ решить эту проблему, если моя программа не зависнет на компьютере?
Спасибо за ваше время и ответы!