我正在开发一个应用,我想一个又一个地阅读一些特征。
我的问题是,读取完成后,我必须延迟一下,否则会出现错误。
为什么需要延迟?有没有办法写一个接一个地正确读取的任务?
我正在使用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之后的延迟似乎不是编码的好习惯。 任何想法 ?