1
我正在Xamain.Forms中构建BLE应用程序。我使用的引发许多基于事件的方法的适配器,例如adapter.DeviceDiscovered
等处理进行:未将对象引用设置为对象的实例解决方法
- 扫描设备
- 连接到选择的装置
- 扫描
Services
存在于设备 - 设备上选择一个
Service
- 扫描
Characteristics
我在第5步的工作现在有下面的代码:
ChosenService.CharacteristicsDiscovered += (object sender, EventArgs e) => {
Debug.WriteLine("service.CharacteristicsDiscovered");
if (characteristics.Count == 0)
Device.BeginInvokeOnMainThread(() => {
foreach (var characteristic in ChosenService.Characteristics) {
characteristics.Add(characteristic);
}
});
};
然而,由于ChosenService
为空,直到第4步完成后,在应用程序的开放,此方法将抛出Object reference not set to an instance of an object
例外。我该如何解决这个问题?理想情况下,我想我需要在设置ChosenService
后阅读该方法,我该如何做?
谢谢你。不幸的是,这没有一个应用程序生命周期。为了我。我对Tasks非常熟悉,但是对他们没有太多经验。你会如何建议我实施这个? –
在用'CharacteristicsDiscovered'填充'ChosenService'的函数运行你的代码后,就像在我发布的代码中一样,请用更多的代码更新你的问题(这个代码必须首先实现在哪里?),以便更准确 – CDrosos