le débogueur bloque les threads ?

Archive.
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

le débogueur bloque les threads ?

Message par filperj »

Voilà, cet exemple marche très bien sans le débogueur, mais avec le thread semble se geler au bout de quelques tours de boucle, et quand on essaie de fermer la fenêtre le prog reste bloqué sur WaitThread():

Code : Tout sélectionner



Structure ThreadComm
  Var.l
  Stop.l
EndStructure

Procedure EnThread(*ThreadComm.ThreadComm)
  Repeat
    *ThreadComm\Var+1
  Until*ThreadComm\Stop
EndProcedure



If OpenWindow(0,0,0,320,320,#PB_Window_SystemMenu,"") And CreateGadgetList(WindowID(0))
  TextGadget(0,0,0,320,320,"",#PB_Text_Center)
  Thread=CreateThread(@EnThread(),@ThreadComm.ThreadComm)
  settimer_(WindowID(0),1,20,0)
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        ThreadComm\Stop=1
        If Thread
          WaitThread(Thread)
        EndIf
        End
      Case #wm_timer
        SetGadgetText(0,Str(ThreadComm\Var))
    EndSelect
  ForEver
EndIf

Je suis sous XP familial non patché, si ça change quelquechose...
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Sous XP pro aussi il vaut mieux éviter le déboggeur avec les thread et utiliser la console :?
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Je vais regarder le code source du debugger pour voir si quelque chose peut influer sur les autres threads. Merci pour l'information ;)
Répondre