Page 1 sur 1

le débogueur bloque les threads ?

Publié : jeu. 18/nov./2004 18:01
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...

Publié : jeu. 18/nov./2004 18:52
par Oliv
Sous XP pro aussi il vaut mieux éviter le déboggeur avec les thread et utiliser la console :?

Publié : sam. 20/nov./2004 22:37
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 ;)