2012-03-22 104 views
0

我目前工作的一個功能在移動應用程序,它需要不斷監測,如果有任何藍牙設備超出範圍或不。如果超出範圍,則應禁用該設備的相應按鈕。其中一個我能想到的選項是,我檢查每個連接的藍牙設備的狀態定期使用定時器通過發出事件。如果定期檢查指示所述裝置中的一個在範圍之外,該設備的按鈕將被禁用。但是,我想不出任何方法如何檢測它是否超出範圍。在wpf中,我使用了可以在應用程序中發送事件的caliburn。換句話說,當送出的情況下,應用程序的任何部分,只要訂閱此事件收到此事件。有沒有人有任何想法如何實現這一目標?事件在winform - .NET Compact Framework的3.5

感謝您提前提供任何幫助。

感謝,

查爾斯劉

回答

0

CF 3.5有背景的工人(2.0沒有)。您可以創建一個底色工人定期檢查藍牙設備的狀態,併發送ReportProgress事件時的一個變化的狀態。你可以有任何你需要訂閱的事件。

ReplorProgress的默認用法是發送顯示後臺工作的進展一個int,但是ReportProgress允許你發送一個對象作爲第二個參數:http://msdn.microsoft.com/en-us/library/a3zbdb1t.aspx

如果你還沒有使用之前BackgroundWorker的類這裏有一個快速指南: http://www.albahari.com/threading/part3.aspx

這將很好地與winforms一起工作。它避免了全:

if (ctrl.InvokeRequired) 
{ 
    ctrl.Invoke(action); 
} 
else 
{ 
    action(); 
} 
相關問題