Tôi hiện đang lập trình một ứng dụng trích xuất khung từ một movie clip. Tôi đã thiết kế nó để quá trình chiết sẽ được thực hiện trên một sợi riêng biệt để ngăn ứng dụng bị đóng băng. Quá trình khai thác chính nó đang lấy rất nhiều tài nguyên, nhưng hoạt động tốt khi được sử dụng trong trình mô phỏng. Tuy nhiên, có vấn đề khi xây dựng nó cho iPad. Khi tôi thực hiện một hành động khác (tôi đang nói với trình phát AV của mình để phát trong khi tôi trích xuất khung), chuỗi bất ngờ ngừng hoạt động và tôi tin rằng nó bị giết.Chủ đề đang bị hệ điều hành cắt
Tôi cho rằng đó là becauase Tôi đang sử dụng rất nhiều tài nguyên, nhưng không hoàn toàn chắc chắn.
Đây là câu hỏi của tôi: 1. Làm cách nào để biết liệu tại sao chuỗi của tôi dừng lại? 2. Nếu nó thực sự là do quá trình xử lý thì tôi nên làm gì? Tôi thực sự cần hành động này để được thực hiện.
Heres một số mã im sử dụng: Để tạo thread:
[NSThread detachNewThreadSelector:@selector(startReading) toTarget:self withObject:nil];
tôi sẽ đăng bất kỳ thông tin nào bạn cần, Cảm ơn rất nhiều!
Cập nhật Tôi đang sử dụng GCD ngay bây giờ và nó điền chủ đề cho tôi. Tuy nhiên hệ điều hành vẫn giết chết các chủ đề.
Tôi biết chính xác khi nào nó diễn ra. khi tôi nói với [AVplayer play] của tôi; nó giết chết sợi chỉ.
Vấn đề này chỉ xảy ra trong iPad thực tế và không phải trên giả lập
Nếu bạn phải hỏi, hãy thử sử dụng trừu tượng mức cao hơn thay thế, như hàng đợi công văn (GCD) hoặc hàng đợi hoạt động (NSOperationQueue).Xem [Di chuyển khỏi Chủ đề] (http://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/ConcurrencyandApplicationDesign/ConcurrencyandApplicationDesign.html#//apple_ref/doc/uid/TP40008091-CH100- SW8) cho một cuộc thảo luận mở rộng, hoặc tìm một ví dụ [GCD] (http://stackoverflow.com/questions/7941860/#7941898) hoặc [NSOperationQueue] (http://stackoverflow.com/questions/830218/). Đó là công cụ rất hữu ích. – Jano
ứng dụng của bạn có gặp sự cố không? nếu vậy báo cáo sự cố nói gì? bạn có chắc AVPlayer là chủ đề an toàn không? bởi vì nếu bạn đang gọi [AVplayer play] và truy cập nó cùng một lúc trong một chủ đề nền, đó có thể là vấn đề. – JeanLuc
Chủ đề trích xuất của bạn có đang chạy dưới dạng chuỗi nền không? Tôi đang học Objective-C nhưng, nếu bạn có thể chạy nó như là một chủ đề nền có thể giúp không bị giết bởi hệ điều hành. –