Ứng dụng của tôi là một ứng dụng OpenGL được sử dụng để xử lý hình ảnh, hiển thị cảnh, hiển thị xem trước, v.v. Tuy nhiên, sau khi triển khai nhiều tác vụ dưới dạng tài liệu chính thức của Apple 'Hướng dẫn lập trình OpenGL ES cho iOS', các sự cố lạ thường vẫn xuất hiện một cách không thường xuyên. Theo dõi ngăn xếp của trình theo dõi lỗi cho thấy một cái gì đó như 'sgxPatchDeferredFramebufferOffsets', 'presentRenderbuffer EXC_BAD_ACCESS', 'gpus_ReturnNotPermittedKillClient', v.v.Ứng dụng OpenGL ES bị treo khi màn hình khóa hoặc hình nền được nhập
Vì vậy, tôi muốn biết chính xác ai nên triển khai OpenGL ES Multi-task.
============= UPDATE: vấn đề giải quyết ============
Cám ơn câu trả lời của bạn, CStreel, và chàng trai khác, những người cố gắng giúp đỡ.
Sau khi đọc 'Các ứng dụng nền có thể không thực thi lệnh trên phần cứng đồ họa' trong phần 'Hướng dẫn lập trình ESO' cho iOS 'lần thứ hai, từng dòng, tôi có một sự hiểu biết mới với vấn đề này.
Vấn đề lớn với ứng dụng của tôi là tôi không nên triển khai nhiều tác vụ OpenGL ES trong phương thức thông báo. Vì, không giống như các phương thức ủy nhiệm, các phương thức thông báo sẽ được gọi là không đồng bộ, các hành động dừng hoạt động và các cuộc gọi glFinish() có thể không có hiệu lực khi ứng dụng đã chuyển sang nền. Điều này có thể xảy ra thường xuyên hơn khi tôi nhấn nút khóa màn hình ngay sau khi tôi thực hiện một loạt các hành động liên quan đến OpenGL ES.
Nếu các bạn tìm thấy một số vấn đề khác, vui lòng liên hệ với tôi.
Sự cố vẫn tiếp diễn nếu bạn gọi OpenGL ES từ hàng đợi nối tiếp ở chế độ nền. Ngay cả sau khi nói với bộ hẹn giờ ngừng bắn, một khối vẫn tiếp tục hoàn thành và nó có thể gây ra sự cố. http://stackoverflow.com/questions/19215554/how-to-stop-opengl-drawing-when-calling-opengl-from-background – openfrog