C# winform-.NET Compact Framework 3.5中的事件
我目前正在开发移动应用程序中的一项功能,该功能需要持续监控是否有任何蓝牙设备超出范围。如果超出范围,则应禁用设备的相应按钮。我能想到的一个选项是,我通过发送事件,定期使用计时器检查每个连接的蓝牙设备的状态。如果定期检查表明其中一个设备超出范围,则此设备的按钮将被禁用。但是,我想不出任何方法来检测它是否超出范围。在wpf中,我使用了caliburn,它可以以应用程序方式发送事件。换句话说,当事件被发送出去时,只要应用程序的任何部分订阅了该事件,它们就会接收该事件。有人知道如何做到这一点吗 提前谢谢你的帮助 谢谢C# winform-.NET Compact Framework 3.5中的事件,c#,C#,我目前正在开发移动应用程序中的一项功能,该功能需要持续监控是否有任何蓝牙设备超出范围。如果超出范围,则应禁用设备的相应按钮。我能想到的一个选项是,我通过发送事件,定期使用计时器检查每个连接的蓝牙设备的状态。如果定期检查表明其中一个设备超出范围,则此设备的按钮将被禁用。但是,我想不出任何方法来检测它是否超出范围。在wpf中,我使用了caliburn,它可以以应用程序方式发送事件。换句话说,当事件被发送出去时,只要应用程序的任何部分订阅了该事件,它们就会接收该事件。有人知道如何做到这一点吗 提前谢谢
Charles LauCF 3.5有背景工人(2.0没有)。您可以创建一个反向工作程序,定期检查蓝牙设备的状态,并在其中一个设备的状态更改时发送ReportProgress事件。你可以有任何你需要的订阅活动 ReportProgress的默认用法是发送一个显示后台工作进程的int,但是ReportProgress允许您发送一个对象作为第二个参数: 如果您以前没有使用过BackgroundWorker类,这里有一个快速指南: 这将很好地与winforms配合使用。它避免了以下模式(用于将调用编组到UI线程):
if (ctrl.InvokeRequired)
{
ctrl.Invoke(action);
}
else
{
action();
}