Avevo creato questo codice per gestire i thread in PhoneGap, ma se eseguo questo codice ho ricevuto il seguente errore.multi thread Problema in ios e android PhoneOne
Thread 14 WebCore: Database: EXC_BAD_ACCESS (code = 1, address = Oxbbadbeef)
Sono anche utilizzando un altro thread che si presenta come quello che avevo incollato sopra, improvvisamente la mia crash dell'applicazione e ottenere lo stesso messaggio di errore, e vorrei anche utilizzare lo stesso codice multi filo sia per Android e Ios qualcuno potrebbe suggerirmi un modo migliore per riutilizzare lo stesso codice sia per Android che per Ios?
Quindi cosa mi manca in questo, e come posso risolvere questo?
Ecco il mio codice:
function itmerStart()
{
if (timerId) return
timerId = setInterval(loadMessageListCron, 20000);
function loadMessageListCron()
{
var userid = window.localStorage.getItem("userId");
if(userid != undefined)
{
alert("thread calling..");
$.ajax("//abc.com/Rest/get_all_messages?UserId="+ userid).done(function(data)
{
var i, response;
$.each(data.messages, function (i, response)
{
inboxMessageItmerStop(); insertMessages(response, i);
inboxMessageItmerStart();
});
});
}
}
}
Non sono sicuro che il multithreading o il javascript abbiano a che fare con il tuo problema. Questo sembra il panico del kernel da un cattivo accesso. Probabilmente stai tentando di inviare un messaggio a un oggetto deallocato nell'obiettivo C o di accedere a una risorsa in un modo non sicuro del thread. Puoi pubblicare il codice nativo? – Lorenzo
Molto simile a @Lorenzo ha commentato, questo non sembra un problema di multithreading. setIntrval non è realmente multithreading in JavaScript. Non sono sicuro che Cordova implementa questo, ma per ottenere un vero multithreading in JavaScript, dai un'occhiata a [web workers] (http://www.html5rocks.com/en/tutorials/workers/basics/). – Merlin