Wykonuję wiele asynchronicznych operacji z blokami w mojej aplikacji.Jak zabić wszystkie wątki, które nie są głównym wątkiem?
Ale muszę zabić wszystkie wątki, które nie są główną nić, jeśli pewne zdarzenie pojawi się w mojej aplikacji.
Czy możliwe jest zatrzymanie wykonywania wszystkich bloków? Lub innymi słowy, zabić wszystkie wątki, które nie są głównym wątkiem?
PS: Próbowałem wykonać bloki wewnątrz NSOperationQueue, ale moja pierwsza operacja nie rozpoczyna się w odpowiednim czasie, podczas gdy następują.
Mój widok wyświetla obrazy, a ja zaczynam od ładowania ich miniaturek i asynchronicznie, ładuję rzeczywiste zdjęcie i zaraz po załadowaniu jest ono wyświetlane zamiast miniatury. Jeśli jednak użytkownik ma ciężkie zdjęcie, które wczytuje w tle i przesunie palcem do następnego zdjęcia, poprzednie ciężkie zdjęcie będzie nadal ładowane w tle, a jeśli nowe zdjęcie będzie niewielkie, ładowanie ciężkiego zdjęcia zakończy się po zastępuje nowe zdjęcie w widoku. Tak więc w moim kodzie starałem się zatrzymać wszystkie wątki tła, gdy użytkownik przesuwał do następnego zdjęcia. To mój problem. –
To klasyczny przypadek użycia, który nie wymaga zabijania żadnych wątków. Proponuję, aby zaimplementować ładowanie obrazu jako anulowaną operację 'NSOperation' i anulować ładowanie obrazu, gdy obraz nie jest już potrzebny. – zoul