bestsource

별도의 스레드에서 실행되는 iphoneios

bestsource 2023. 8. 12. 10:32
반응형

별도의 스레드에서 실행되는 iphoneios

별도의 스레드에서 코드를 실행하는 가장 좋은 방법은 무엇입니까?다음과 같은 경우:

[NSThread detachNewThreadSelector: @selector(doStuff) toTarget:self withObject:NULL];

또는:

    NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self
                                                                        selector:@selector(doStuff:)
                                                                          object:nil;
[queue addOperation:operation];
[operation release];
[queue release];

저는 두 번째 방법을 사용하고 있지만 제가 읽은 웨슬리 쿡북은 첫 번째 방법을 사용합니다.

제 생각에 가장 좋은 방법은 Grand Central Dispatch(GCD)라고 불리는 libdispatch를 사용하는 것입니다.그것은 당신을 iOS 4 이상으로 제한하지만, 그것은 매우 간단하고 사용하기 쉽습니다.백그라운드 스레드에서 일부 처리를 수행한 다음 주 실행 루프에서 결과를 처리하는 코드는 놀랍도록 쉽고 압축적입니다.

dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // Add code here to do background processing
    //
    //
    dispatch_async( dispatch_get_main_queue(), ^{
        // Add code here to update the UI/send notifications based on the
        // results of the background processing
    });
});

아직 그렇게 하지 않았다면 libdispatch/GCD/blocks에서 WWDC 2010의 비디오를 확인하십시오.

iOS에서 멀티스레딩을 위한 가장 좋은 방법은 GCD(Grand Central Dispatch)를 사용하는 것입니다.

//creates a queue.

dispatch_queue_t myQueue = dispatch_queue_create("unique_queue_name", NULL);

dispatch_async(myQueue, ^{
    //stuffs to do in background thread
    dispatch_async(dispatch_get_main_queue(), ^{
    //stuffs to do in foreground thread, mostly UI updates
    });
});

저는 사람들이 올린 모든 기술을 시도해보고 어떤 것이 가장 빠른지 알아보겠지만, 이것이 가장 좋은 방법이라고 생각합니다.

[self performSelectorInBackground:@selector(BackgroundMethod) withObject:nil];

나는 NSTread에 당신이 쉽게 블록에서 스레드를 실행할 수 있는 카테고리를 추가했습니다.여기서 코드를 복사할 수 있습니다.

https://medium.com/ @umair hasanbaig/ios-how-how-perform-a-backg-backg-backg-and-main-main-main-with-with-build-11f5138ba380.

언급URL : https://stackoverflow.com/questions/3869217/iphone-ios-running-in-separate-thread

반응형