In einem Versuch, eine Ladeleiste für ein iPhone-Spiel zu erstellen, das ich (mit Cocos2D) entwickle, wollte ich einen Multithread-Ansatz verwenden.Multithread-OpenGL-Programmierung in Cocos2D-iPhone
Ein Thread zeigt einen Ladebildschirm an und führt die Hauptanwendungsereignisschleife aus, während ein neuer Thread alle Sprites im Hintergrund (über spriteWithFile) automatisch lädt und dann zu einer Ebene hinzufügt.
I erstellen den neuen Thread NSThread die Verwendung detachNewThreadSelector Methode (die über performSelectorOnMainThread Aktualisierungen des Ladestatus an die Haupt-Thread sendet).
Das Problem, mit dem ich konfrontiert bin, ist, dass alle OpenGL Aufrufe (wie die in der spriteWithFile Methode) im neuen Thread sterben mit einem BUS-Fehler oder Speicherzugriffsfehler irgendeiner Art. Ich nehme an, dass das ist, weil beide Threads versuchen, OpenGL-Aufrufe zur gleichen Zeit zu machen, oder der neue Thread den OpenGL-Kontext nicht kennt.
Was getan werden muss, damit mehrere Threads OpenGL-Aufrufe auf dem iPhone mit Cocos2D-iPhone machen können.
http://www.cocos2d-iphone.org/forum/topic/363 das war auch hilfreich. –
Link in erster Antwort: 1. Ich bekomme Malware-Warnung vom Browser. Wenn ich immer noch sage, es zu ignorieren 2. Ich bekomme 404. –
Ich reparierte den Link & aktualisierte die Antwort. –