Avatar billede ultik Nybegynder
28. juni 2001 - 17:05 Der er 4 kommentarer og
2 løsninger

Applet der crasher IE ?

Hej !....

hvor \"svært\" er det at lave en applet der crasher internet explorer ? bare rolig, jeg ønsker ikke at bruge dette til noget destruktivt, men jeg har lidt af et problem med en applet jeg bruger i et projekt, jeg er nemlig lidt bange for at det er den der gør at min IE bliver slagtet rimlig ofte....

Det er ikke nær så stort et problem på W2K maskiner som på 98 ( selvfølgelig ), men stadig et klart problem.... der kører 2 tråde ( + en main tråd ? ) der begge snakker med browseren igennem et netscape.javascript.JSObject.... er der noget jeg skal være klar over?  passe på ? med hensyn til oprydning, initialisering ?...


jeg kan desværre ikke dele koden med jer, da det ikke er min, jeg arbejder bare på den.... :(

Med venlig hilsen og på forhånd tak,
Ulrik Jensen
ulrik@qcom.dk
Avatar billede ultik Nybegynder
28. juni 2001 - 17:13 #1
btw: min applets stop funktion :
 
public void stop()
  {
    traadeins.stop = true;
    traadzwei.stop = true;
  }

jeg starter dem således :

    traadeins = new CTraadEins(this, js);
    traadzwei = new CTraadZwei(this, js);
    new Thread(traadeins).start();
    new Thread(traadzwei).start();

nogle af problemerne opstår bl.a. når jeg opdaterer, det vil sige når den bliver stopet + startet igen jo.....
Avatar billede ultik Nybegynder
29. juni 2001 - 18:00 #2
argh !.... der må da være lidt hjælp at hente her...

starter jeg dem rigtigt ? er det ikke nok at typecase til Thread, istedet for den med new Thread ? ( det er som sagt ikke mig der har lavet koden, så jeg kender ikke motivet med det )... og er det nok at sætte stop = true ? eller skal man sætte dem til null også ? bliver threads omgået af garbage collectoren ? og i så fald, hvordan gør man det manuelt ?
Avatar billede ultik Nybegynder
01. juli 2001 - 17:15 #3
hmm, er der virkelig ikke nogen der kan hjælpe her ? bare et lille bitte svar ? eller en kommentar ? har folk overhovedet SET det her spørgsmål ? ville være rart med lidt tovejs kommunikation her :((

hjælper det hvis jeg siger at både CTraadEins og CTraadZwei er defineret ca sådan her :

class CTraadZwei extends Thread {
  ...
}

er der nogen der kender noget godt litteratur|linkgs|something om emnet så ? helst noget online ?

hvis det er pointsene der mangler så afsætter jeg altså lige nogle flere !! plz help me, or atleast talk to me......
Avatar billede logical Nybegynder
02. juli 2001 - 08:50 #4
Ok, men folk er nok bange for at de ikke rigtig kan gøre så meget her, fordi problemerne kan muligvis ligge andre steder, end hvor vi opererer normalt, men jeg kan da godt kommentere lidt på det.

Eftersom klassen CTraadZwei extender Thread har den sin egen start metode, og der burde derfor stå

traadzwei = new CTraadZwei(this, js);
traadzwei.start();

med hensyn til
traadeins.stop = true;

Så betyder det, at klassen har en tilgængelig attribut, som hedder stop af typen boolean. Den kan ikke sættes til null :-)

Tråde fungere på følgende måde i java.

Når man kalder metoden start() på en tråd, bliver der skabt en ny tråd (Ikke at forveksle med en klasse, som fejlagtigt hedder Thread, så lad os kalde det en eksekveringstråd). Det betyder, at efterfølgende vil der være minimum 2 eksekveringstråde, os selv og den anden.

Nr2 eksekveringstråd skal starte et sted, så den udfører pr definition en metode, der hedder public void run().

Generelt set kører tråde kontinuerligt indtil metoden run() afsluttes, så nedlægges eksekveringstråden automatisk (selv om objektet Thread stadig findes).

Typisk vil man gerne fortælle en tråd udefra, at den skal stoppe, men da kriteriet er afslutning af metoden run(), laver man typisk følgende i en run metode:

while(someRunningConditionIsTrue) {
  doStuff();
  Thread.sleep(1); // typically
}

Og denne someRunningConditionIsTrue kunne foreksempel være evalueringen af en boolsk variable, f.eks. kaldet stop

Men for at vende tilbage til dit hovedspørgsmål.

Hvorfor din applet crasher lige præcis i IE på en 98 er næsten umulig at afgøre, men afhænger 90% af den virtuelle maskine.

Har du kørt problemet med en javalog, for hvis der ikke kommer noget i en sådan er du (desværre) henvist til MS support.
Avatar billede logical Nybegynder
02. juli 2001 - 08:51 #5
Og svaret var:
aner det ikke :-)
Avatar billede ultik Nybegynder
02. juli 2001 - 16:07 #6
ang. den boolske stop, så er det også med

while (!stop)

inde i begge trådes run funktion....

det var sådan set også selve klassen CTraadEins jeg ville sætte til null.....

ok, den crasher nu ikke kun på en 98 maskine, det sker også på windows2000 maskiner, og både med IE5.5 og 5.0.........

hvordan får jeg en javalog op at køre ? skal jeg starte den inde fra  \"Java Plug-in Control Panel\" ?

ok, jeg takker for dit svar, du får 100 point for det, ok ? jeg synes ikke jeg vil slynge 300 point for det, da problemet jo ikke helt er løst.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester