Gå til innhold

tråd funker bare når jeg kjører i debug mode


Anbefalte innlegg

Nå er jeg usikker på kunnskapsnivået her inne, men det er litt vanskelig å få spurt læreren på en lørdag/søndag :p

 

Jeg har noe kode som skal kjøre i en egen tråd, det tråden utfører krever en del tillatelser fra brukeren (jeg jobber mot PIM databasen på en mobil enhet og da kreves en del sikkerhetspørsmål når midleten ikke er signert).

 

Uten å gå vidre inn på hvordan koden min er, så kan jeg avsløre at alt fungerer når jeg debugger, men ikke når jeg kjører applikasjonen som vanlig.

 

Og da er spørsmålet... WTF?

Lenke til kommentar
Videoannonse
Annonse

Etter å ha prøvd å feilet litt har jeg funnet ut hva som funkerer og hva som ikke fungerer... Dette fungerer (har lagt på noen deklarasjonsnavn slik at det skal være enklere å se hvilken type variabler vi har her):

 

    
//Variabler
Vector changesMob;
Thread changesT

         pimThread = new pimThread(this, changesMob);
         changesT = new Thread(pimThread);
         changesT.start();
         
         //changesMob.removeAllElements();

         mainForm.setCommandListener(this);
         Display.getDisplay(this).setCurrent(mainForm);

 

Problemet er at jeg vil også ha med linjen som er kommentert ut, og da virker det ikke som at tråden kjører (kun i debug)... Det virker som at den tømmer vectoren før tråden kjøres. Noen som har vært borti lignende problemer?

Endret av xibriz
Lenke til kommentar

Jeg har vært borti lignende problemer. Det som kan skje er at når du starter en tråd, så blir den koden utført parallelt med koden i metoden som startet tråden. Det kan bety at noen ganger så kjøres koden i changesT sin run() metode før changesMob.removeAllElements, mens andre ganger så slettes alt innholdes i changesMod vektoren før koden i changesT sin run() metode kjøres. Du må finne en måte å sikre at koden utføres i den rekkefølgen du ønsker at den skal utføres.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...