特性.ReadAsync()之后的插件BLE(v1.3.0)延迟

时间:2019-02-07 09:22:14

标签: xamarin.forms

我正在开发一个应用,我想一个又一个地阅读一些特征。

我的问题是,读取完成后,我必须延迟一下,否则会出现错误。

为什么需要延迟?有没有办法写一个接一个地正确读取的任务?

我正在使用Xamarin.forms和Ble v1.3.0插件。 我已经在两个连续的ReadAsync()函数之间尝试了“ await Task.Delay(200)”,它可以正常工作,但是如果我删除了延迟,第二个ReadAsync就会出现异常。

private async Task ReadChr(ICharacteristic LocalCharacteristic)
{
  byte[] localData = { };
  if (LocalCharacteristic.CanRead)
  {
    try
    {
      return localData = await LocalCharacteristic.ReadAsync();
    }
    catch (Exception ex)
    {
      Debug.WriteLine(ex.Message);
      return null;
    }
  }
}

if (firstCharacteristic.CanRead)
{
  var ccc = await ReadChr(firstCharacteristic);
}
await Task.Delay(200);
if (secondCharacteristic.CanRead)
{
  var ddd = await ReadChr(secondCharacteristic);
}

我正在搜索轮询特性的读取过程状态之类的东西。 ReadAsync之后的延迟似乎不是编码的好习惯。 任何想法 ?

0 个答案:

没有答案