0
EADemo 예제를 사용하여 블루투스 앱을 개발 중입니다.iOS의 이벤트를 기반으로 여러 작업 시작하기
- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
{
switch (eventCode) {
case 1:
//here I want to start two tasks
break;
}
그리고 어떤 I 작성하고 평행 읽어야하는 나는 일반적인 큐를 가지고 : 블루투스 inputStream에 데이터가있을 때마다, 다음과 같은 이벤트가 호출됩니다. 큐는 실제로 NSMutuableArray입니다. 쓰기 부분에서 나는 addobject : 을 사용하고 읽기 부분에서 나는 objectAtIndex : 0을 사용합니다.
어떤 문제에 대해 어떻게 생각 하시나요?
A : dispatch_async가 동시에 시작 되었습니까? 처음에는 같은 생각을했습니다. 그러나 나는 그것의 확실하지 않았다. –
dispatch_async이므로 실행을 기다리지 않고 즉시 다음 줄로 이동합니다. 따라서 첫 번째 블록이 제출되고 두 번째 블록이 제출됩니다. 어떻게 실행되는지는 GCD가 어떻게 CPU주기를 제공하는지에 달려 있습니다. –
아이디어를 주셔서 감사합니다. 나는 나중에 이것을 시도 할 것이다. 지금은 두 작업의 대기열에 액세스 할 수 있습니다. 다른 객체에 액세스 할 때 아무런 문제가 없습니다. :) –