sashaoli, а, что обязательно создавать внутри контейнера дополнительные потоки? Попробуй без Thread в контейнере. Add(MainForm,1654302,119,133) { Width=374 Height=147 BorderStyle=1 link(onCreate,4285292:doEvent1,[]) } Add(Edit,11641370,357,98) { Left=115 Top=15 Width=240 ColorSp=-16777215 Text="" ReadOnly=0 link(onChange,9241815:doValue,[]) } Add(Button,15167945,224,98) { Left=10 Top=15 Width=85 Caption="Sours Folder" link(onClick,5279826:doBrowse,[]) } Add(Browse,5279826,266,98) { Title="Select Pack Folder" NewStyle=0 NewDirButton=1 link(onBrowse,429033:doEvent1,[]) } Add(FileSearch,16211729,257,365) { @Hint=#32:Перебор файлов в выбранной папке| TimeType=1 link(onSearch,3855596:doEvent1,[]) link(onEndSearch,9795724:doFor,[(305,378)(305,447)]) link(Dir,744672:Var,[]) } Add(MultiElementEx,859352,481,434) { @Hint=#35:Схема вызывается для каждого потока| Mode=1 link(onEnd,13378340:doMessage,[(522,440)(522,482)]) link(StringArray,11850414:Text,[]) AddHint(87,-2,183,26,@Hint) } BEGIN_SDK Add(EditMultiEx,9781944,28,21) { WorkCount=#5:##add|8:##select|24:doStart=Запускает процес| EventCount=#28:onEnd=Работа схемы завершена| VarCount=#7:##count|7:##index|21:State=Состояние схемы|12:##eventIndex| DataCount=#32:StringArray=Масив путей к файлам|0:| Width=461 Height=172 HOffset=30 Point(##add) Point(##select) Point(##count) Point(##index) Point(##eventIndex) link(##add,7889051:doData,[(46,27)(46,76)]) link(doStart,965417:doEnum,[(39,41)(39,118)]) link(State,5687178:State,[(78,172)(202,172)]) } Add(StrList,2252093,105,49) { } Add(Replace,13002273,245,112) { link(onReplace,1228726:doString,[]) link(Sub_str,3458208:Var,[]) } Add(FileTools,1141567,427,105) { link(FileName,965417:Item,[(433,90)(469,90)(469,162)(125,162)]) link(NewFileName,1228726:FString,[(440,95)(464,95)(464,156)(293,156)]) } Add(ArrayEnum,965417,119,112) { link(onItem,13002273:doReplace,[]) link(onEndEnum,14890370:doEvent1,[]) link(Array,2252093:Array,[]) } Add(GlobalVar,3458208,252,63) { Name="sours_fold" } Add(FormatStr,1228726,287,112) { Mask="%2%1" Point(FString) link(onFString,10879940:doPart,[]) link(Str2,3715577:Var,[]) } Add(GlobalVar,3715577,294,84) { Name="dest_fold" } Add(FilePartElm,10879940,329,112) { Mode=0 link(onPart,10818881:doDir,[]) } Add(Dir,10818881,378,112) { link(onEnd,1141567:doCopy,[]) } Add(Switch,5687178,196,119) { DataOn=Integer(1) DataOff=Integer(0) Point(State) link(onSwitch,9781944:onEnd,[(236,125)(236,27)]) } Add(Hub,14890370,161,119) { link(onEvent1,5687178:doSwitch,[]) } Add(Icon,14137199,168,42) { @Hint=#5:#main| Icon=[ZIP9E09000078DAED955D48536118C78F7D51375A81262424595877E5BA2A22905D098110DEC430F522B225288524D445DA96F6652E144389F4A68B4CD15448A79BF363DAD4694EA7CE2F4CA7885F686AD3F0DFFF3D2D08AA7984EEEA1DBFBD8773CEFB7BDEF33CEF798F24F9F1171C2CF13F54CADC27494192249D203C259D92BE9FFF0BCD8FEC25FBC90105F893DD0ABD3B4800B94AEE139D17FD1F10D7B4E4D816EE3DE430394AD4D1D1D1B89D96865BA9A9B89194042DB9A6D5222E210157E2E26434B1B1B8141383A0A0A0018E39BB85FB32292195C46C301860EBEC44ABCD0693C5024B7333CC4D4D78535A8A1A930925E5E5B0B6B7C3C8E3888888698E39EFC37F91D8EA79EFDBB2323CC9CE86F0F7F4F6C24CB7F05BDBDA50DFD0809ABA3A585A5A50515525F746B319112A954F7F686868B55AADC6E2D2125CC3C3786F34CA7EE7C0001A396FE16EB65AD1D2DA2A5FAB658CB28A0AD47B636F357F954A559DC4FC2E2D2F636C7C1CF59C93F08B58ED1D1DE8753A51C76773B0D7EBD2F1E0790EB437AFC3909B2BE76DABF9FFF0AFACAC60726A0A8DCCB3F00FD15F535B0B13E389DCF5F5F723E76916F22A2B919E9D81BCFC7CB4F0D994FAD7D6D630333B2BE741F83F4D4CC0CABC0C0C0E6264741483434378F63813F9AF8B59A374BC2828C007D658A5D0EFF178B0B0B8081BC708FFF4F43406E97672DE96C646D8BBBBF1E861163233EE427FEF0E5E1517A3D36E57ECDFD8D8C067E6A8ABAB4BF6CFCDCD61666646EEC7C6C6E4B8FDACB99DD745DEBA18EF634F8F62FFE6E6263CEBEB70381CB27F91CF32C57A2C2C2CC8BD700DB3262EE6697864046E9EEBEDEB53EC174DC4E8673E847F89EB75823510FDFCFC3C9C5C3F93939370BBDD72CC66AE9DE49414040606BAA939ADC42F9ACBE592FDABABAB725E442F107197B986C5F117D6AA96394A4E4E86BFBFFF4BEF5EA8D8AFD16850CCFAFD8EA2A22219BD5E8FF0F070031507BD7BA322BF58A7625DFE8CC8C53BAEFBC2C242848585D9392C8A9CF3EECD7EBE364EE14F611E1313137D121F1F8FC8C84827879C21BB947E4C424242AAB3B9A7F942A7D3212A2ACAC1DB4F929DDBFC5E897DFFB8020E79BF3FFFDB3FD86026EC37C9D76DE34702C8117241E26BF80BDF0012AFFCBF] } Add(DoData,7889051,56,70) { link(onEventData,2252093:doText,[]) link(Data,9781944:StringArray,[]) } END_SDK Add(Hub,3855596,313,365) { link(onEvent1,11850414:doAdd,[]) link(onEvent2,15446539:doNext,[]) } Add(GlobalVar,744672,264,336) { Name="sours_fold" } Add(Button,9416412,159,365) { Left=235 Top=85 Width=120 Caption="Copy" link(onClick,6514589:doStart,[]) } Add(Edit,4085769,357,49) { Left=115 Top=45 Width=240 ColorSp=-16777215 Text="" ReadOnly=0 link(onChange,9677502:doValue,[]) } Add(Browse,7576246,266,49) { Title="Select Pack Folder" NewStyle=0 NewDirButton=1 link(onBrowse,4085769:doText,[]) } Add(GlobalVar,9677502,406,49) { Name="dest_fold" Data=String() } Add(Button,1923096,224,49) { Left=10 Top=45 Width=85 Caption="Dest Folder" link(onClick,7576246:doBrowse,[]) } Add(For,9795724,376,441) { @Hint=#31:Цикл запуска процесса в потоках| IncludeEnd=1 link(onEvent,15965135:doEvent1,[]) link(End,859352:##count,[(389,428)(418,428)(418,478)(487,478)]) AddHint(-241,19,188,13,@Hint) } Add(Label,8815368,412,231) { Left=175 Top=90 } Add(Hub,4285292,168,147) { link(onEvent1,16583815:doWork2,[]) link(onEvent2,6202415:doPosition,[(201,160)(201,230)]) } Add(GlobalVar,9241815,406,98) { Name="sours_fold" Data=String() } Add(CounterEx,15446539,362,372) { @Hint=#48:Счетчик максимального количества файлов в потоке| Min=1 Max=500 Point(onThroughMax) Point(doReset) Point(doMax) Point(Max) link(onThroughMax,14749321:doEvent1,[]) AddHint(0,-56,200,26,@Hint) } Add(Hub,14749321,404,379) { OutCount=3 link(onEvent1,859352:##add,[(450,385)(450,440)]) link(onEvent2,11850414:doClear,[(432,392)(432,378)]) link(onEvent3,15446539:doReset,[(428,399)(428,412)(350,412)(350,385)]) } Add(StrList,11850414,481,365) { @Hint=#31:Список файлов для одного потока|19:Для каждого - новый| AddHint(67,-1,190,26,@Hint) } Add(UpDown,6202415,237,224) { Left=150 Top=85 Max=6 Min=1 Position=2 link(onPosition,12850526:doText,[]) } Add(FileSearch,12643089,350,147) { @Hint=#35:Количество файлов в выбранной папке| TimeType=1 link(Dir,11641370:Text,[]) AddHint(67,1,186,26,@Hint) } Add(Edit,12850526,286,224) { Left=115 Top=85 Width=35 link(onChange,14076929:doWork2,[]) link(Str,6038432:Var2,[]) } Add(MathParse,6828647,343,224) { MathStr="trunc(%2/%1)+1" ResultType=0 link(onResult,8996694:doEvent1,[]) link(X1,6038432:Var3,[(349,208)]) link(X2,12643089:Count,[]) } Add(GetDataEx,6038432,286,203) { Angle=3 link(Data,6202415:Position,[(216,208)(216,264)(243,264)]) } Add(Hub,429033,308,98) { OutCount=3 link(onEvent1,11641370:doText,[]) link(onEvent2,16583815:doWork1,[(340,111)]) link(onEvent3,14076929:doWork1,[(332,118)]) } Add(HubEx,16583815,336,147) { link(onEvent,12643089:doSearch,[]) } Add(HubEx,14076929,328,224) { link(onEvent,6828647:doCalc,[]) } Add(Hub,8996694,384,224) { link(onEvent1,14983954:In,[]) link(onEvent2,8815368:doText,[]) } Add(Thread,6514589,208,365) { FastStop=0 link(onExec,16211729:doSearch,[]) } Add(Label,7620334,153,224) { Left=15 Top=90 Width=90 Height=17 Caption="Number of threads" } Add(LineBreak,11283616,313,386) { @Color=65535 link(Out,15446539:doMax,[]) Primary=[14983954,141,-162] } Add(Hub,15965135,427,441) { link(onEvent1,859352:##select,[]) link(onEvent2,859352:doStart,[]) } Add(InfoTip,2424062,147,196) { Info=#33:Расчет количества файлов на поток| VAlign=2 Width=351 Height=88 } Add(StyleXP,5108433,119,84) { } Add(Message,13378340,546,476) { link(Message,859352:##eventIndex,[(552,467)(538,467)(538,474)(508,474)]) }
|