[英]Event in winform - .NET Compact Framework 3.5
我目前正在研究移動應用程序中的一項功能,該應用程序需要持續監控是否有任何藍牙設備超出范圍。 如果超出范圍,則應禁用該設備的相應按鈕。 我能想到的選項之一是,我通過發送事件定期使用計時器檢查每個連接的藍牙設備的狀態。 如果定期檢查表明其中一個設備超出范圍,則該設備的按鈕將被禁用。 但是,我想不出任何方法來檢測它是否超出范圍。 在 wpf 中,我使用了 caliburn,它可以在應用程序中發送事件。 換句話說,當事件發出時,應用程序的任何部分只要訂閱了這個事件,就會收到這個事件。 有沒有人知道如何實現這一目標?
提前感謝您的任何幫助。
謝謝,
查爾斯·劉
CF 3.5 有后台工作人員(2.0 沒有)。 您可以創建一個后台工作程序,它會定期檢查藍牙設備的狀態,並在設備狀態發生變化時發送一個 ReportProgress 事件。 你可以讓任何你需要訂閱事件。
ReportProgress 的默認用法是發送一個顯示后台工作進程進度的 int,但是 ReportProgress 允許您發送一個對象作為第二個參數: http : //msdn.microsoft.com/en-us/library/a3zbdb1t.aspx
如果您之前沒有使用過 BackgroundWorker 類,這里有一個快速指南: http : //www.albahari.com/threading/part3.aspx
這將很好地與 winforms 一起使用。 它避免了以下模式(用於將調用編組到 UI 線程上):
if (ctrl.InvokeRequired)
{
ctrl.Invoke(action);
}
else
{
action();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.