私はある時間後に特定のタスクを行うアプリケーションを持っています(タイマーによって制御されます)。しかし、私がPCを起動するたびに、そのアプリケーションが実行されます。これは、少なくとも1つのティックのために休止状態の間、タイマーが動作し続けることを意味します。どうすればこの問題を回避できますか?C#winformアプリケーションで休止/スリープモード中にタイマーを停止するには?
答えて
SystemEvents.PowerModeChangedイベントを処理して、マシンがサスペンドしているときにタイマーを停止し、再開時に再びタイマーを開始することができます。
SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
...
void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
if (e.Mode == PowerModes.Suspend) PauseTimer();
else if (e.Mode == PowerModes.Resume) ResumeTimer();
}
SystemEvents.PowerModeChanged + = SystemEvents_PowerModeChangedの目的は何ですか; –
イベント/デリゲートの割り当てです。 'SystemEvents.PowerModeChanged'イベントが発生するたびに、メソッド' SystemEvents_PowerModeChanged'が呼び出され、パラメータeのモードが関数に渡されます。これを確認していないが、もっともらしい解決策のようだ。 – froeschli
「MSDNページ」(http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.powermodechanged%28v=VS.90%29.aspx)から重要な点の1つは、 SystemEvents.PowerModeChanged'イベントは、アプリケーションが破棄されたときにイベントハンドラをデタッチする必要があるということです: 'SystemEvents.PowerModeChanged - = SystemEvents_PowerModeChanged;'。 –
- 1. C#タイマー停止後のイベントハンドラーの停止
- 2. C#タイマーの集中停止/開始
- 3. アプリケーション全体を一時停止/休止するためのフレームワーク
- 4. コールバックメソッドでタイマーを停止
- 5. AS 3.0停止タイマー
- 6. デバッグ中にタイマーを停止する方法
- 7. ホバー上でタイマーを停止する
- 8. 仮想キーでタイマーを停止する
- 9. 休止アプリケーション
- 10. 実行中のすべてのタイマーを停止する
- 11. C# - どのようにタイマーを停止しますか?
- 12. タイマーからNSRunLoopを停止する
- 13. 中にCAKeyframeAnimationを停止する
- 14. 実行中にクエリを停止する
- 15. アニメーション中にスクロールテーブルビューを停止する
- 16. 休止高度/中間チュートリアル
- 17. Apache Tomcatからアプリケーションをアンデプロイ/停止する前にプロセス/スレッドを停止する
- 18. JSLint Visual Studioで "停止中"
- 19. 休憩を使わずにforループを停止する
- 20. 一定時間後にタイマーを停止する
- 21. setTimeout()タイマーを停止するのに助けが必要
- 22. シャットダウン時にスケジュールされたタイマーを停止する
- 23. Windowsサービスマネージャによるサービスの停止を防止するC#
- 24. タイマーの起動と停止PHP
- 25. DAOの休止ツールと休止テンプレート
- 26. Cでデーモンを停止
- 27. タイムアウト中にスレッドを一時停止
- 28. 休止
- 29. 休止
- 30. 休止 -
ただ、この権利を取得するには、タイマーは、あなたが書いた(C#?)アプリケーション内です。タイマーを開始するアプリケーションを起動します。その後、あなたのPC(Windows OSを前提とする)をスリープ状態または休止状態にします。タイマーより長い時間が経過すると、コンピュータを再起動すると、アプリケーションのティックイベントが発生します。今あなたは知ってほしい、どのようにあなたのPCが休止中にタイマーを '刻む'から防ぐために。正しい? – froeschli
@froeschli正確に –
あなたを失望させて申し訳ありませんが、私はあなたの質問に答えを与えることはできません。 – froeschli