2012-03-22 23 views
0

現在、モバイルアプリケーションの機能の1つで、Bluetoothデバイスが範囲外であるかどうかを継続的に監視する必要があります。範囲外の場合は、デバイスの対応するボタンを無効にする必要があります。私が考えることのできるオプションの1つは、イベントを送信することによってタイマーを使用して定期的に接続された各Bluetoothデバイスのステータスをチェックすることです。デバイスの1つが範囲外であることを定期的にチェックすると、このデバイスのボタンは無効になります。しかし、範囲外であるかどうかを検出する方法は考えられません。 wpfでは、アプリケーションを賢明にイベントを送信できるcaliburnを使用しました。言い換えれば、イベントが送信されると、このイベントを購読している限り、アプリケーションのどの部分もこのイベントを受信します。誰にどのようにこれを達成するための任意のアイデアがありますか?winformのイベント - .NET Compact Framework 3.5

ご協力いただきありがとうございます。

おかげで、

チャールズ・ラウ

答えて

0

CF 3.5は、背景の労働者(2.0はしなかった)を持っています。ブルートゥースデバイスのステータスを定期的にチェックするバックワードワーカーを作成し、ステータスが変化したときにReportProgressイベントを送信することができます。イベントに登録する必要があるものは何でも構いません。あなたが前のBackgroundWorkerクラスを使用していない場合はhttp://msdn.microsoft.com/en-us/library/a3zbdb1t.aspx

ReplorProgressのデフォルトの使用量は、バックグラウンドワーカーの進捗状況を示すint型を送ったことです、しかしReportProgressは、あなたが2番目の引数としてオブジェクトを送信することができますここにクイックガイドがあります: http://www.albahari.com/threading/part3.aspx

これはうまくwinformsで動作します。それは全体を避ける:

if (ctrl.InvokeRequired) 
{ 
    ctrl.Invoke(action); 
} 
else 
{ 
    action(); 
} 
関連する問題