В настоящее время я используюКак улучшить использование ЦП при автоматической «блокировке» приложения (WPF) с помощью Window.PreviewMouseMoveEvent?
EventManager.RegisterClassHandler(typeof(Window),
Window.PreviewMouseMoveEvent,
new MouseEventHandler(OnPreviewMouseMove));
где OnPreviewMouseMove
просто вызывает Stop()
и Start()
по таймеру, используемого для обработки автоматического тайм-аут моего приложения (пользователи должны повторно ввести учетные данные после периода бездействия).
Я заметил, что это решение использует довольно много мощности процессора (как, например, 3-12% на Core i7, когда я дрожу над окном), поэтому я задаюсь вопросом, может ли быть лучший способ справиться с этим. Я понимаю, что неустойчивое движение мыши и относительно низкое использование ЦП не будут настоящей проблемой, но я открыт для лучших способов справиться с этим.
Я также не уверен, что это можно сделать для работы с приложениями, отличными от WPF (по моему мнению, в этом случае мне понадобятся разные события), но это может иметь значение для другого вопроса.
вы должны знать, если пользователь перемещает мышь, в то время как ваша программа ориентирована или просто зная, мышь перемещается в целом (даже если ваша программа была сведена к минимуму) быть приемлемым, чтобы ваш тайм-аут работал на том же делать часы, которые использует заставка? –
@Scott Я бы предположил, что часы заставки будут работать. Если это сработает, даже если заставка будет отключена, конечно. – rubenvb