User Passwort
 Passwort speichern Passwort vergessen?
 
 
 
 Alle Foren
 PDA-Dev :: Windows Mobile
 Windows Mobile - Allgemeines
 ThreadStateException
Autor Vorheriges Thema Thema Nächstes Thema  

BenPa

PDA-Programmierer


96 Beiträge

Erstellt am: 16.07.2007 :  16:39:03 Uhr  Profil anzeigen  Autor eine Email senden  Besuche BenPa's Homepage  Antwort mit Zitat
Hallo,
ich bekomm in meinem Prog. die Fehlermeldung "ThreadStateException" wenn ich den folgenden Code ausführen möchte:
public void Start()
{
if (MeinThread == null)
{
MeinThread = new Thread(MachWas);
}
MeinThread.Start();
}
Wenn ich das ganze Debugge bekomme ich keine Fehlermeldung, fast so als ob versucht wird den Thread mit Start() zu starten, obwohl er noch nicht komplett initialisiert ist, kann das sein?
Grüße BenPa
   

BenPa

PDA-Programmierer


96 Beiträge

Erstellt  am: 17.07.2007 :  10:50:42 Uhr  Profil anzeigen  Autor eine Email senden  Besuche BenPa's Homepage  Antwort mit Zitat
Also, warum der Fehler autritt weiß ich jetzt. Das Programm versucht einen bereits laufenden Thread zu starten. Das kann ich ja einfach durch eine if Abfrage ausschließen. Allerdings verstehe ich nicht warum versucht wird den Thread noch mal zu starten.
Der Thread wird eigentlich nur beim erstellen des Objekts gestartet, und das Objekt wird genau 1x gestartet. Ich hab keine Ahnung wie das sein kann. Und wie schon oben erwähnt, tritt der Fehler nur auf wenn ich ihn "schnell" durchlaufen lasse. Lasse ich ihm beim debuggen zwischen jedem Schritt zeit, tritt der Fehler nicht auf.
Versteh ich nicht...
Grüße BenPa
Zum Anfang der Seite

Aikieugen

PDA-Spezialist


435 Beiträge

Erstellt  am: 17.07.2007 :  11:16:43 Uhr  Profil anzeigen  Autor eine Email senden  Besuche Aikieugen's Homepage  Antwort mit Zitat
Hi!
Hast Du versucht, die Zeitverzögerung einzubauen?
Gruss
Aikieugen
Zum Anfang der Seite

ReinerZ

PDA-Spezialist


347 Beiträge

Erstellt  am: 17.07.2007 :  12:41:54 Uhr  Profil anzeigen  Autor eine Email senden  Besuche ReinerZ's Homepage  Antwort mit Zitat
Hi,
in solchen Fällen ist ein StackTrace hilfreich.
Du kannst z.B in deiner Start()-Funktion zu Beginn einen Breakpoint setzen. Wenn die Funktion ein zweites mal aufgerufen wird und auf den Breakpoint läuft, rufst du über Debug/Windows/Callstack das StackTrace-Fenster auf. Dort solltest du dann eigentlich feststellen können, wer die Funktion aufgerufen hat.
Gruss
Reiner
Zum Anfang der Seite

BenPa

PDA-Programmierer


96 Beiträge

Erstellt  am: 18.07.2007 :  08:33:06 Uhr  Profil anzeigen  Autor eine Email senden  Besuche BenPa's Homepage  Antwort mit Zitat
Hallo Ihr Beiden,
welche Zeitverzögerung meinst du Aikieugen?
Werd ich mir mal anschauen Reiner...
Danke euch für die Hilfe!
Zum Anfang der Seite

Enno

PDA-Programmierer


20 Beiträge

Erstellt  am: 18.07.2007 :  13:10:14 Uhr  Profil anzeigen  Autor eine Email senden  Besuche Enno's Homepage  Sende Enno eine ICQ Message  Antwort mit Zitat
Aikieugen mein wahrscheinlich
thread.sleep(milliseconds as integer)

Bearbeitet von: Enno am: 18.07.2007 13:12:26 Uhr
Zum Anfang der Seite

BenPa

PDA-Programmierer


96 Beiträge

Erstellt  am: 19.07.2007 :  10:01:48 Uhr  Profil anzeigen  Autor eine Email senden  Besuche BenPa's Homepage  Antwort mit Zitat
Eine Zeitverzögerung mittels Thread.Sleep() ist im Thread drin.
Allerdings geht´s mir hauptsächlich nicht um den Thread, sonder darum, dass er irgendwann 2x gestartet wird, und das eigentlich nicht sein dürfte...
Aber ich werd mal den Tip vom Reiner beherzigen und mir den StackTrace genauer anschauen...
Grüße BenPa
Zum Anfang der Seite
  Vorheriges Thema Thema Nächstes Thema  
Springe nach:
 
  Bookmark & Share  
 
 
 
  Tags  
 
Keine Tags gefunden
 
 

 



pda-dev.de

Quicklinks: Foren-Übersicht | Developer-News | Suche | Impressum

© just-works! Software

Zum Anfang der Seite

Snitz Forums 2000