0
我正在構建一個物聯網設備,並且我有非常好的異步讀取,但我需要執行同步讀取。我被告知這是可能的Android上,因爲有一種方法,基本上讀取緩衝區,因爲它來。Core-bluetooth - 是否可以做同步讀取?
我想知道如果核心藍牙支持類似的東西,或者如果有人有一個聰明的辦法呢?
我正在構建一個物聯網設備,並且我有非常好的異步讀取,但我需要執行同步讀取。我被告知這是可能的Android上,因爲有一種方法,基本上讀取緩衝區,因爲它來。Core-bluetooth - 是否可以做同步讀取?
我想知道如果核心藍牙支持類似的東西,或者如果有人有一個聰明的辦法呢?
任何異步操作都可以通過阻塞進行同步,直到操作完成。您可以使用隊列或鎖來阻止。
NSLock *lock = [[NSLock alloc] init];
[thing doSomethingAsynchronousWithCompletion:^{
[lock unlock];
}];
[lock lock];
不要這樣做。永遠不會。
您不應該阻止。您的異步代碼的完成處理程序應該觸發導致您的代碼繼續的事件。
[thing doSomethingAsynchronousWithCompletion:^(NSData *readData){
[dataProcessor processData:readData];
}];