または、ネイティブ コードを pinvoke する必要がありますか?
私は電源ステータスを望んでいません...まあ、私はそれを常にポーリングしたくはなく、むしろイベントを発生させたいと思っています。
2 に答える
いいえ、ありません。通常、アプリケーションは電源状態を完全に認識していません。デバイスが一時停止すると、コードは単に実行を停止します。再開すると、中断した正確な場所から再開します。
電力管理システムに接続して通知を受け取ることができますが、実際に反応する時間がないことに注意してください。そのため、コードが「スリープ状態になる」イベントを実際に処理できるのは、再度ウェイクアップするまでです。
これらの状態遷移は両方とも、SmartDeviceFrameworkのOpenNETCF.WindowsCE.PowerManagerクラスの管理対象関数で公開されます。
デバイスがいつサスペンドしているのかを絶対に知る必要がある場合は、プログラムを無人モードで実行するのが最善の方法です。デバイスを一時停止する代わりに、無人電源状態に変わります。これは、デバイスが一時停止したいという警告です。デバイスが一時停止する前に必要な作業を実行してから、無人要求を解放します(他のプログラムが無人モードを要求している場合、デバイスが一時停止しない可能性があることに注意してください)。
無人モードの詳細については、http://www.codeproject.com/KB/mobile/WiMoPower1.aspxを参照してください。
電源変更通知を受け取る例については、http://www.codeproject.com/KB/mobile/WiMoQueue.aspxを参照してください。