Voilà tout est dans le titre.
Pour être un peu plus précis ces 2 boucles For Next exécutent un travail différent très important en 2 étapes mais je dois pouvoir faire stop ou quitter sur les deux étapes de travail.
Là je sèche, çà parait simple mais j'aurais besoin d'une piste

Merci

;~ #include <GUIConstantsEx.au3>
Opt("GuiOnEventMode", 1)
Global $Stop
GUICreate("My GUI", 300, 200, Default, Default, -1, $WS_EX_ACCEPTFILES)
Global $Label = GUICtrlCreateLabel("0", 10, 30, 150, 20)
Global $idBtn = GUICtrlCreateButton("Start", 10, 50, 50, 20)
Global $idBtn2 = GUICtrlCreateButton("Stop", 10, 80, 50, 20)
GUICtrlSetOnEvent( $idBtn, "_Start")
GUICtrlSetOnEvent( $idBtn2, "_Stop")
GUISetOnEvent( $GUI_EVENT_CLOSE, "_Exit")
GUISetState()
While 1
Sleep(100)
WEnd
Func _Start()
ConsoleWrite( "Line=" & @ScriptLineNumber & " @GUI_CtrlId=" &@GUI_CtrlId&" _Start()"& @CRLF)
$Stop = 0
_Working()
EndFunc
Func _Working()
ConsoleWrite( "Line=" & @ScriptLineNumber & " @GUI_CtrlId=" &@GUI_CtrlId&" _Working() Step 1/2"& @CRLF)
For $i = 0 to 250
If $Stop Then Exitloop
;~ If $Stop Then Return
GuiCtrlSetData($Label, "Job 1 ligne " & $i)
Sleep(10)
Next
ConsoleWrite( "Line=" & @ScriptLineNumber & " @GUI_CtrlId=" &@GUI_CtrlId&" _Working() Step 2/2"& @CRLF)
For $i = 0 to 250
If $Stop Then Exitloop
;~ If $Stop Then Return
GuiCtrlSetData($Label, "Job 2 ligne " & $i)
Sleep(10)
Next
ConsoleWrite( "Line=" & @ScriptLineNumber & " Travail terminé"& @CRLF)
EndFunc
Func _Stop() ; <<< Ne fonctionne pas pendant la boucle For Next
ConsoleWrite( "Line=" & @ScriptLineNumber & " @GUI_CtrlId=" &@GUI_CtrlId&" _Stop()"& @CRLF)
$Stop = 1
EndFunc
Func _Exit() ; <<< Ne fonctionne pas pendant la boucle For Next
ConsoleWrite( "Line=" & @ScriptLineNumber & " @GUI_CtrlId=" &@GUI_CtrlId&" _Exit()"& @CRLF)
GUIDelete()
Exit
EndFunc