W jaki sposób można uzyskać NSURLConnection do wywoływania jego delegatów metod z innego wątku zamiast wątku głównego. Próbuję zadziwić się z scheduleInRunLoop: forMode: ale nie wydaje się robić to, co chcę.iOS, NSURLConnection: Delegować oddzwonienia na inny wątek?
Muszę pobrać duży plik i tak często przerywa wątek główny, że niektóre renderowania zaczynają robić się niepewne.
NSURLRequest * request = [NSURLRequest requestWithURL:url];
NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
NSRunLoop * loop = [NSRunLoop currentRunLoop];
NSLog(@"loop mode: %@",[loop currentMode]);
[connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[connection start];
Inna sprawa, nie widzę dużo jest „Tryby” Istnieją tylko dwa tryby udokumentowane tak naprawdę nie wiele do testowania z.
Wszelkie pomysły?
Dzięki
nie trzyma się wokół wątku, w którym działa kolejka? Tak więc, nazywam to raz, wątek jest trzymany w pobliżu. Nazywam to jeszcze raz, ponieważ GCD decyduje o tym, w jakim wątku działa kolejka, to może pozostać inny wątek i tak dalej ... Czyż nie jest to możliwe, aby utrzymać wątki bez powodu, gdy praca zostanie wykonana na wątkach? globalna kolejka? Co masz na myśli, mówiąc: "Jeśli chcesz gwarancji na wątek, który używasz, zastąp wywołanie odpowiednio dispatch_get_global_queue()."? W jaki sposób możesz celować w wątek poprzez GCD? – zumzum