Mam aplikację, która wykonuje określone zadanie po pewnym czasie (kontrolowane przez zegar). Ale zawsze, gdy uruchomię komputer po hibernacji, że aplikacja działa. Oznacza to, że czasomierz działa podczas hibernacji przynajmniej przez jeden tyk. Jak mogę tego uniknąć.Jak zatrzymać timer podczas hibernacji/trybu uśpienia w aplikacji C# winform?
Odpowiedz
Można obsłużyć zdarzenie SystemEvents.PowerModeChanged, aby zatrzymać licznik czasu, gdy urządzenie zawiesza się i uruchomić go ponownie po wznowieniu.
SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
...
void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
if (e.Mode == PowerModes.Suspend) PauseTimer();
else if (e.Mode == PowerModes.Resume) ResumeTimer();
}
co jest celem SystemEvents.PowerModeChanged + = SystemEvents_PowerModeChanged; –
To jest przypisanie do zdarzenia/zadania. Za każdym razem, gdy zostanie wywołane zdarzenie 'SystemEvents.PowerModeChanged', zostanie wywołana metoda' SystemEvents_PowerModeChanged', z trybem w parametrze 'e', który jest przekazywany do funkcji. Nie zweryfikowałem tego, ale wydaje się prawdopodobne rozwiązanie. – froeschli
Jedna ważna rzecz do zapamiętania ze strony [MSDN] (http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.powermodechanged%28v=VS.90%29.aspx) dla ' Zdarzenie SystemEvents.PowerModeChanged' polega na tym, że musisz odłączyć obsługę zdarzeń, gdy aplikacja zostanie usunięta: 'SystemEvents.PowerModeChanged - = SystemEvents_PowerModeChanged;'. –
- 1. Jak sprawnie obsługiwać tryby hibernacji/uśpienia w aplikacji WinForm?
- 2. jak zablokować GUI aplikacji w C# Winform
- 3. Winform Splash Screen - VB.NET - Timer
- 4. Jak zatrzymać i wznowić TimerTask/Timer
- 5. Jak zatrzymać timer handler.postDelayed() na Androidzie
- 6. Jak zatrzymać timer po określonej liczbie razy
- 7. Swing Timer, jak zatrzymać i wznowić?
- 8. Wychodzenie z aplikacji WinForm C#
- 9. Funkcja uśpienia w C++
- 10. Timer T323 i szybki stan uśpienia w sieci UMTS
- 11. C# - jak zatrzymać stoper?
- 12. Jak zatrzymać czasomierz podczas debugowania
- 13. C# timer nie zaznaczy
- 14. C# Timer lub Thread.Sleep
- 15. Uruchamianie aplikacji/usługi w trybie głębokiego uśpienia?
- 16. Problem klepsydry w aplikacji WinForm
- 17. Jak zatrzymać zdarzenie NStimer?
- 18. Jak odzyskać rozdzielczość ekranu z aplikacji C# winform?
- 19. Timer zwiększa wykorzystanie pamięci w C# app
- 20. jak wykreślić postać Matlaba wewnątrz aplikacji WinForm?
- 21. Jak dodać pomoc do winform C# application
- 22. Obsługa wielu języków w aplikacji WinForm
- 23. C# - WinForm - zmienne globalne
- 24. winform aplikacji UI zawiesza się podczas długotrwałych Operation
- 25. C# app.config in winform
- 26. Okno wyskakujące w winform C#
- 27. Kontrole Clone - C# (Winform)
- 28. WinForm C# Outlook Style Calendar
- 29. Jak zatrzymać NSTimer
- 30. Jak zatrzymać NSTimer?
Wystarczy, aby uzyskać to prawo, timer jest w (C#?) Aplikacji, którą napisałem. Rozpoczynasz aplikację, która uruchamia timer. Następnie umieść komputer (zakładając system operacyjny Windows) w stan uśpienia/hibernacji. Po upływie czasu dłuższego niż licznik czasu uruchom ponownie komputer i wystąpi zdarzenie dotyku aplikacji. Teraz chcesz wiedzieć, jak zapobiec odliczaniu czasu, gdy komputer jest w stanie hibernacji. Poprawny? – froeschli
@froeschli dokładnie –
Przykro mi to rozczarować, ale nie mogę dać ci odpowiedzi na twoje pytanie. – froeschli