簡體   English   中英

winform 中的事件 - .NET Compact Framework 3.5

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM