2011-11-09 41 views
2

メッセージを受信するwcfデュプレックスサービスをリッスンする単純なメッセージングwpfアプリケーションがあります。ネットワークが故障した場合(またはLANケーブルを切断した場合)、正常に動作するサービスに再接続するように、コード化しました。wpfアプリケーションでスリープモードから復帰するウィンドウにどのように反応できますか?

私の問題は、Windowsがスリープモードになると再接続を試みることができないということです。ネットワークをポーリングするためのタイマーがスリープ状態になるため、ポーリングが停止するためです。

「Windowsが目を覚ます」イベントなどに反応する方法はありますか?

答えて

2

、シンプル、

Microsoft.Win32.SystemEvents.PowerModeChanged += this.SystemEvents_PowerModeChanged; 

private void SystemEvents_PowerModeChanged(object sender, Microsoft.Win32.PowerModeChangedEventArgs e) 
{ 
    if (e.Mode == PowerModes.Resume) 
     { 
      //Do Some processing here 
     } 
} 

...システムの再開イベントに反応するコードの道を管理し、P /呼び出しに対するこのアプローチの(主要な)利益があることですirはOS(Windows XP & Vistaのための余分な処理を必要としません)を越えて動作します。もちろん、それはむしろもっと賢明です!

0

あなたはhttp://www.codeproject.com/KB/system/OSEvents.aspxを見ましたか?

これはC++で記述されていますが、Win32APIのみを使用していると思いますので、P/Invokeを使用するとアプリケーションでコードを使用できるはずです。 :)私は最終的に私が望んでい

関連する問題