Собственно пример с этого форума:
Enumeration
#Window_0
#Start
#Text
EndEnumeration
Procedure Progr(*x)
For a=0 To 100000
SetGadgetText(#Text,Str(a))
Delay(100)
Debug "Жив1"
Next
EndProcedure
OpenWindow(#Window_0, 100, 150, 400, 200, "Работа в потоке",#PB_Window_SystemMenu|#PB_Window_WindowCentered)
ButtonGadget(#Start,20,50,70,20,"Старт")
TextGadget(#Text, 150,50, 30,20,"")
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadget()
Case #Start
If IsThread(ThreadID)=0
ThreadID=CreateThread(@Progr(), x)
Else
Delay (2000)
MessageRequester("", "Программа занята!", #MB_OK|#MB_ICONWARNING)
EndIf
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
Суть - при повторном нажатии Старт поток встает пока не пройдет Delay.
Затык в SetGadgetText.
Как быть ?
Отредактировано Alexsvc (24.03.2017 14:31:09)



