首页 > 解决方案 > Xamarin DependencyService.Get 在后台线程中。最佳实践?

问题描述

我有一个适用于 iOS 和 Android 的 Xamarin Forms 项目。我正在使用蓝牙诊断适配器连接到车辆,该车辆具有用于每个通信平台的本机库。在我的主要项目中,我有一个后台工作人员,每当我想查看消息时,我都会启动和停止它。在该线程内(基本上是一个读取和处理任何新消息的循环),我调用 DependencyService.Get 来读取消息。尽管我看到了时间问题(丢失的消息),但这一切都“工作正常”,我很确定这是由于在该线程内发生了数百个 DependencyService.Get 调用(我在本机 iOS/ 中看不到这种行为) Android Xamarin 项目)。有一个更好的方法吗?由于我需要将此代码移动到每个平台中吗?那会很糟糕,因为这将是很多代码重复。

标签: c#xamarinxamarin.formsxamarin.androidxamarin.ios

解决方案


我将后台工作人员代码移到 iOS 项目中,但仍然看到时间问题。因此它与 DependencyService 无关。

感谢您的帮助,我确实知道我应该只创建一个对 Dependency.Get 调用的引用。:)


推荐阅读