Premier programme : premier souci !

Peut-on mettre à jour un gadget (ProgressBarGadget) dans une fenêtre, à partir d'un Thread. Ce dernier n'ayant pas ouvert lui-même la fenêtre concernée ?
Merci
Dans le code suivant, la barre n'est actualisée qu'a la sortie du Thread.
Code : Tout sélectionner
Enumeration
#Win0 : #Win1
#Btn_Run : #Btn_Retour : #Btn_Exit0 : #Btn_Exit1
#List : #Bar
EndEnumeration
Global Stop_Bar
Procedure Chg_Bar(Prm)
Repeat
avance = avance + 10
If avance > 100 : avance = 10 : EndIf
SetGadgetState(#Bar, avance)
Delay(Prm)
Until Stop_Bar = 1
EndProcedure
If OpenWindow(#Win0, 400, 250, 180, 160, "Fenetre 0", #PB_Window_TitleBar)
If CreateGadgetList(WindowID(#Win0))
ButtonGadget(#Btn_Run, 10, 130, 70, 20, "Lancer")
ButtonGadget(#Btn_Exit0, 100, 130, 70, 20, "Quitter")
EndIf
Repeat
Event = WaitWindowEvent(1)
If Event = #PB_Event_Gadget
Select EventGadget()
Case #Btn_Run ; Bouton "Lancer --> Affiche 2ème fenetre
; Démarrage du Thread gérant la barre d'avancement
; Remplissage de la liste par boucle For
If OpenWindow(#Win1, 400, 250, 500, 160, "Fenetre 1", #PB_Window_TitleBar)
HideWindow(#Win0, 1)
If CreateGadgetList(WindowID(#Win1))
ButtonGadget (#Btn_Retour, 10, 130, 70, 20, "Retour")
ButtonGadget (#Btn_Exit1, 100, 130, 70, 20, "Quitter")
ListViewGadget (#List, 190, 30, 290, 110)
ProgressBarGadget(#Bar, 30, 75, 120, 20, 0, 100)
UpdateWindow_(WindowID(#Win1))
Stop_Bar = 0
ThreadID = CreateThread(@Chg_Bar(), 500)
For i = 0 To 9
AddGadgetItem (#List, i, Str(i+1))
SetGadgetState(#List, i)
Delay(500)
Next
Stop_Bar = 1
SetGadgetState(#Bar, 100)
EndIf
EndIf
Case #Btn_Retour ; Ferme fenetre 1, réaffiche fenetre 0
HideWindow(#Win0, 0) : CloseWindow(#Win1)
Case #Btn_Exit1
Event = #PB_Event_CloseWindow
Case #Btn_Exit0
Event = #PB_Event_CloseWindow
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
EndIf