반응형
iOS-메인 스레드에서 실행 확인
이 질문에 이미 답변이 있습니다.
- 현재 스레드가 메인 스레드인지 확인 11 답변
메인 스레드function 에서 my를 호출하는 방법을 알고 싶습니다 .
메인 스레드function 에서 my 가 호출 되었는지 어떻게 확인 합니까?
(이것은 내 이전 질문 을 따릅니다 ).
내 앱이 메인 스레드에서만 내 코드를 실행하도록 할 수있는 규칙이 있습니까?
일반적으로이를 보장하기 위해 아무것도 할 필요가 없습니다. 일반적으로 목록으로 충분합니다. 스레드를 생성하고 백그라운드에서 코드를 실행하는 일부 API와 상호 작용하지 않는 한 기본 스레드에서 실행됩니다.
확실하게하고 싶다면 다음과 같이 할 수 있습니다.
[self performSelectorOnMainThread:@selector(myMethod:) withObject:anObj waitUntilDone:YES];
메인 스레드에서 메서드를 실행합니다. (GCD에 상응하는 것도 있습니다.)
이렇게하면됩니다.
[[NSOperationQueue mainQueue] addOperationWithBlock:^ {
//Your code goes in here
NSLog(@"Main Thread Code");
}];
도움이 되었기를 바랍니다!
iOS> = 4를 사용하는 경우
dispatch_async(dispatch_get_main_queue(), ^{
//Your main thread code goes in here
NSLog(@"Im on the main thread");
});
나는 이것이 멋지다고 생각한다. 심지어 일반적으로 올바른 스레드에서 호출되는 것을 책임지는 메서드의 호출자를 떠나는 좋은 형태이다.
if (![[NSThread currentThread] isMainThread]) {
[self performSelector:_cmd onThread:[NSThread mainThread] withObject:someObject waitUntilDone:NO];
return;
}
참고 URL : https://stackoverflow.com/questions/11582223/ios-ensure-execution-on-main-thread
반응형
'Program Club' 카테고리의 다른 글
| Sublime Text를 사용하여 여러 줄을 하나로 병합 (0) | 2020.10.27 |
|---|---|
| ImageMagick 및 OS X Lion 문제 (0) | 2020.10.27 |
| Objective C에서 int를 문자열로 변환하는 방법 : 예제 코드 (0) | 2020.10.27 |
| 선택을 통한 Onchange 오픈 URL-jQuery (0) | 2020.10.27 |
| 무작위로 테스트를 다시 시작하는 phpunit (0) | 2020.10.27 |