c# - Xamarin DependencyService.Get 在后台线程中。最佳实践?
问题描述
我有一个适用于 iOS 和 Android 的 Xamarin Forms 项目。我正在使用蓝牙诊断适配器连接到车辆,该车辆具有用于每个通信平台的本机库。在我的主要项目中,我有一个后台工作人员,每当我想查看消息时,我都会启动和停止它。在该线程内(基本上是一个读取和处理任何新消息的循环),我调用 DependencyService.Get 来读取消息。尽管我看到了时间问题(丢失的消息),但这一切都“工作正常”,我很确定这是由于在该线程内发生了数百个 DependencyService.Get 调用(我在本机 iOS/ 中看不到这种行为) Android Xamarin 项目)。有一个更好的方法吗?由于我需要将此代码移动到每个平台中吗?那会很糟糕,因为这将是很多代码重复。
解决方案
我将后台工作人员代码移到 iOS 项目中,但仍然看到时间问题。因此它与 DependencyService 无关。
感谢您的帮助,我确实知道我应该只创建一个对 Dependency.Get 调用的引用。:)
推荐阅读
- sql - 如何将 R 会话中的值替换为 SQL 绑定变量占位符?
- scrapy - 使用css使用scrapy抓取下一页
- android - 保存的图片base64是错误的
- javascript - 承诺完成后如何在axios中调用数组元素
- r - 如何避免separate_rows()-function 的“No common size”错误
- google-oauth - 需要采取的行动:在 9 月 30 日之前确认您的 OAuth 客户端设置,以便继续访问 Google API
- python - 儒略日期函数未知字符串日期错误
- pandas - 带有 .shift 的 Pandas 中的简单返回索引
- android - 在 Fragment 之间传递方法
- javascript - 根据匹配键添加对象值