Вверх ↑
Этот топик читают: Гость
Ответов: 1343
Рейтинг: 31
#1: 2013-08-16 09:49:10 ЛС | профиль | цитата
Как сделать много потоков не увеличивая код схемы?

Я когда то слышал что можно как то сделать так что бы 1 кусок схемы можно было использовать много раз не увеличивая элементы и что то ето было связано с потоками

может кто то знает как это сделать можно?
карма: 2

0
Ответов: 5446
Рейтинг: 323
#2: 2013-08-16 10:28:22 ЛС | профиль | цитата
Rysik, MultiElementEx
карма: 1

0
Ответов: 1343
Рейтинг: 31
#3: 2013-08-16 10:39:52 ЛС | профиль | цитата
iarspider писал(а):


это нето!

я спрашивал как сделать размножение схемы одним событие после которого каждый раз при нажатии копировался код и запускался тоесть нажал 1 раз кнопку запустился 1 поток 2 раз нажал кнопку запустился ещё 1 поток итд но при этом надо что бы это всё было без огромной схемы что бы в схеме был 1 поток и он размножался при нажатии

если ты говорил про OnlyOnce то в контейнере то что то я не понял как им пользоваться
карма: 2

0
Ответов: 1536
Рейтинг: 176
#4: 2013-08-16 11:05:26 ЛС | профиль | цитата
Rysik, а это, разве, не то?
Add(MultiElementEx,6000816,210,112)
{
}
BEGIN_SDK
Add(EditMultiEx,15569136,21,21)
{
WorkCount=#5:##add|
Point(##add)
link(##add,11597532:doStart,[(35,27)(35,55)])
}
Add(Thread,11597532,49,49)
{
}
END_SDK
Add(Button,6854644,154,112)
{
Left=150
Top=110
link(onClick,6000816:##add,[])
}
Потоки.jpg
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
файлы: 1Потоки.jpg [75.2KB] [240]
Ответов: 1343
Рейтинг: 31
#5: 2013-08-16 11:15:55 ЛС | профиль | цитата
ser_davkin писал(а):
Rysik, а это разве не то?
код

Потоки.jpg



пасиб то что надо а как теперь останавливать потоки все без выключения программы?
карма: 2

0
Ответов: 1536
Рейтинг: 176
#6: 2013-08-16 11:23:46 ЛС | профиль | цитата
Thread
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 1343
Рейтинг: 31
#7: 2013-08-16 11:25:38 ЛС | профиль | цитата
ser_davkin писал(а):
Thread




так если жать на doStop то завершается последний запущенный поток а мне надо что бы все они завершались
карма: 2

0
Ответов: 1536
Рейтинг: 176
#8: 2013-08-16 11:38:36 ЛС | профиль | цитата

Add(MainForm,14484015,105,140)
{
Width=743
Height=316
}
Add(MultiElementEx,6520928,420,112)
{
@Hint=#37:как вариант без визуальных элементов.|
Mode=1
AddHint(-65,-72,164,26,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,7007167,21,21)
{
WorkCount=#5:##add|8:##delete|7:##clear|
VarCount=#7:##count|
Point(##add)
Point(##delete)
Point(##clear)
Point(##count)
link(##add,1222298:doStart,[])
link(##delete,3869363:doWork2,[])
link(##clear,3869363:doWork3,[(46,41)])
}
Add(Thread,1222298,77,21)
{
link(onExec,351632:doNext,[])
}
Add(CounterEx,351632,133,21)
{
}
Add(HubEx,3869363,42,28)
{
link(onEvent,1222298:doStop,[])
}
END_SDK
Add(Button,13234462,105,231)
{
Left=465
Top=15
Width=100
Caption="Создаём копии"
link(onClick,5639990:doEvent1,[])
}
Add(ChildPanelEx,14054058,371,112)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,4893340,21,21)
{
WorkCount=#5:##add|8:##delete|7:##clear|
VarCount=#7:##count|
Point(##add)
Point(##delete)
Point(##clear)
Point(##count)
link(##add,16149287:doStart,[(53,27)(53,34)])
link(##delete,7254459:doWork1,[(39,34)])
link(##clear,7254459:doWork2,[])
}
Add(Panel,13114251,84,91)
{
Left=10
Top=35
Width=443
Height=28
Layout="parent.00"
}
Add(Thread,16149287,84,28)
{
Delay=10
link(onExec,10770462:doNext,[])
}
Add(ProgressBarRush,2316658,210,28)
{
Left=2
Top=2
Width=439
Height=24
Align=5
}
Add(CounterEx,10770462,161,28)
{
link(onNext,2316658:doPosition,[])
}
Add(HubEx,7254459,35,35)
{
link(onEvent,16149287:doStop,[])
}
END_SDK
Add(ToolBarLayout,9020041,189,245)
{
Name="00"
}
Add(Hub,5639990,154,231)
{
OutCount=3
PColor(onEvent1,16755455)
link(onEvent1,14054058:##add,[(197,237)(197,118)])
link(onEvent2,9837404:doEvent3,[])
link(onEvent3,9020041:doResize,[])
}
Add(For,1175870,371,231)
{
link(onEvent,14958432:doAdd,[])
link(End,2152873:reCalc,[])
}
Add(ListBox,14958432,434,231)
{
@Hint=#68:кликая по индексу в списке, останавливаем поток и удаляем саму схему|
Left=465
Top=40
Width=250
Height=225
Hint="кликая по индексу в списке, останавливаем поток и удаляем саму схему"
link(onClick,4807968:doEvent1,[(474,244)(474,91)(206,91)(206,153)])
AddHint(-77,57,197,39,@Hint)
}
Add(Hub,9837404,294,224)
{
InCount=3
PColor(onEvent1,43775)
link(onEvent1,14958432:doClear,[(417,230)(417,244)])
link(onEvent2,1175870:doFor,[])
}
Add(MathParse,2152873,371,168)
{
DataCount=1
MathStr="%1 -1"
ResultType=0
Point(reCalc)
link(X1,14054058:##count,[])
}
Add(Hub,4807968,217,147)
{
link(onEvent1,14054058:##delete,[(240,153)(240,125)])
link(onEvent2,9837404:doEvent2,[(238,160)(238,237)])
}
Add(Button,9410871,259,126)
{
Left=575
Top=15
Width=140
Caption="Удаляем все копии"
link(onClick,4544578:doEvent1,[])
}
Add(Hub,4544578,308,126)
{
link(onEvent1,14054058:##clear,[])
link(onEvent2,9837404:doEvent1,[(334,139)(334,185)(282,185)(282,230)])
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 5446
Рейтинг: 323
#9: 2013-08-16 13:08:14 ЛС | профиль | цитата
Rysik, точка ##delete. Hiasm под рукой нет, но вроде была ещё точка ##clear, удаляющая все экземпляры
карма: 1

0
Разработчик
Ответов: 26324
Рейтинг: 2147
#10: 2013-08-16 13:25:34 ЛС | профиль | цитата
iarspider писал(а):
но вроде была ещё точка ##clear, удаляющая все экземпляры

Нельзя использовать, не остановив все потоки, иначе получится крэш.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#11: 2013-08-16 16:18:48 ЛС | профиль | цитата
А что, кем-то запрещено останавливать потоки от внутренних ##delete, ##clear...

Чур на деревянную голову - не ссылаться.
С ней, вообще - ничего нельзя. И даже произносить слово "потоки" - противопоказано
карма: 9

0
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)