Igor08 писал(а):
В чем может быть ошибкаНасчёт программирования у меня тоже туго

Но понятие "поток", что в HiAsm, что в самой Win, одинаковы (на мой взгляд дилетанта). Запущенный поток заканчивается, когда выполнены ВСЕ действия по всей цепочки событий. Если же последним действием является запуск нового потока, то это глупая система в отличии от умного программиста, не считает ОКОНЧАНИЕМ потока, новый запускается, а не оконченный записывается в стек, и так происходит до переполнения стека, о чём система и сообщает в виде окошка с ошибкой.
На моём компьютере происходит на ~5800 шаге по вашей схеме.
Для остановки потока надо разорвать его, от своего события поток НЕ останавливается. Вот пример:

Add(MainForm,2953706,112,98)
{
Left=100
Top=100
}
Add(Button,2293750,175,98)
{
Left=10
Top=35
Caption="New"
link(onClick,887884:doEvent1,[])
}
Add(Edit,12852549,252,49)
{
Left=10
Top=10
Width=55
Text="5000"
DataType=2
}
Add(For,2493988,245,105)
{
IncludeEnd=1
link(onEvent,8448546:doAdd,[])
link(onStop,9572952:doData,[(291,118)(291,69)])
link(End,12852549:Text,[])
}
Add(StrList,8448546,315,105)
{
}
Add(Hub,887884,217,98)
{
link(onEvent1,8448546:doClear,[(298,104)(298,118)])
link(onEvent2,2493988:doFor,[])
}
Add(ListBox,12531232,364,42)
{
Left=95
Top=5
Width=75
Height=175
}
Add(DoData,9572952,315,63)
{
link(onEventData,12531232:doText,[])
link(Data,8448546:Text,[(321,54)(307,54)(307,159)(321,159)])
}
Add(Button,13330136,112,231)
{
Left=5
Top=145
Caption=">>"
link(onClick,11594363:doEvent1,[])
}
Add(ArrayRW,6341194,322,252)
{
link(onRead,8684211:doEvent1,[])
link(Array,8448546:Array,[(328,222)(335,222)])
link(Index,2253295:Var2,[])
}
Add(Math,8346132,238,182)
{
Op2=1
ResultType=0
Point(doClear)
link(Op1,2355341:Var1,[(244,173)(230,173)(230,229)])
}
Add(Thread,11006514,189,252)
{
Delay=0
link(onExec,8025525:doCompare,[])
}
Add(Hub,11594363,154,231)
{
OutCount=4
link(onEvent1,8346132:doClear,[(179,237)(179,195)])
link(onEvent2,4898321:doClear,[(403,244)(403,265)])
link(onEvent3,2290610:doStart,[(228,251)(228,300)])
link(onEvent4,11006514:doStart,[])
}
Add(GetDataEx,2355341,238,224)
{
link(Data,8346132:Result,[])
}
Add(Hub,8684211,371,252)
{
link(onEvent1,4898321:doOperation,[])
link(onEvent2,8346132:doOperation,[(396,265)(396,237)(223,237)(223,188)])
}
Add(If_else,8025525,238,252)
{
Type=1
link(onTrue,6341194:doRead,[])
link(onFalse,14165636:doEvent1,[])
link(Op1,2355341:Var2,[])
link(Op2,8448546:Count,[(251,222)(328,222)])
}
Add(Math,4898321,420,252)
{
Point(doClear)
link(Op1,7584245:Var1,[(426,243)(412,243)(412,292)])
}
Add(Hub,14165636,280,259)
{
link(onEvent1,2290610:doStop,[(312,265)(312,307)])
link(onEvent2,10286058:doStart,[(305,272)(305,307)(123,307)(123,272)])
}
Add(GetDataEx,7584245,420,287)
{
link(Data,4898321:Result,[])
}
Add(FormatStr,1513776,413,301)
{
DataCount=3
Mask="Сумма %1 строк равна %2 за %3 мкс"
link(onFString,4312938:doText,[])
link(Str1,2253295:Var3,[(419,229)])
link(Str2,7584245:Var2,[])
}
Add(GetDataEx,2253295,329,224)
{
Angle=3
link(Data,2355341:Var3,[])
}
Add(Thread,10286058,133,266)
{
@Hint=#39:Если удалить, поток не останавливается!|
Delay=0
FastStop=0
link(onExec,11006514:doStop,[(179,272)(179,265)])
}
Add(TimeCounter,2290610,350,294)
{
Precision=1
link(onStop,1513776:doString,[])
}
Add(Label,4312938,462,301)
{
Left=10
Top=200
Caption=""
}