Core-bluetooth - 是否可以进行同步读取?
Core-bluetooth - Is it possible to do a synchronous read?
我正在构建一个 IoT 设备,我的异步读取工作得很好,但我需要执行同步读取。有人告诉我这在 Android 上是可能的,因为有一种方法基本上可以在缓冲区进入时读取它。
我想知道 Core-bluetooth 是否支持类似的东西,或者是否有人对此有巧妙的方法?
任何异步操作都可以通过阻塞直到操作完成来同步。可以使用队列或者锁来阻塞。
NSLock *lock = [[NSLock alloc] init];
[thing doSomethingAsynchronousWithCompletion:^{
[lock unlock];
}];
[lock lock];
不要这样做。从来没有。
你不应该阻止。您的异步代码的完成处理程序应触发导致您的代码继续的事件。
[thing doSomethingAsynchronousWithCompletion:^(NSData *readData){
[dataProcessor processData:readData];
}];
我正在构建一个 IoT 设备,我的异步读取工作得很好,但我需要执行同步读取。有人告诉我这在 Android 上是可能的,因为有一种方法基本上可以在缓冲区进入时读取它。
我想知道 Core-bluetooth 是否支持类似的东西,或者是否有人对此有巧妙的方法?
任何异步操作都可以通过阻塞直到操作完成来同步。可以使用队列或者锁来阻塞。
NSLock *lock = [[NSLock alloc] init];
[thing doSomethingAsynchronousWithCompletion:^{
[lock unlock];
}];
[lock lock];
不要这样做。从来没有。
你不应该阻止。您的异步代码的完成处理程序应触发导致您的代码继续的事件。
[thing doSomethingAsynchronousWithCompletion:^(NSData *readData){
[dataProcessor processData:readData];
}];