Вверх ↑
Ответов: 60
Рейтинг: 0
#1: 2020-10-07 15:35:32 ЛС | профиль | цитата
Здравствуйте. Подскажите пожалуйста, можно такое сделать или не получится, выполнить параллельные вычисления.
Чтобы одни вычисления начинались при окончании всех других вычислений.
Пример

Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,21,105)
{
Width=1136
}
Add(For,2299397,1036,350)
{
IncludeEnd=1
link(onEvent,15807592:doCompare,[])
link(onStop,14060616:doCreate,[(1094,363)(1094,447)])
link(End,12663611:Var2,[])
}
Add(If_else,15807592,1169,350)
{
link(onTrue,2299397:doStop,[(1230,356)(1230,409)(1022,409)(1022,363)])
link(onFalse,5071433:doRead,[])
link(Op1,3157702:Var2,[(1175,338)(1131,338)])
link(Op2,12663611:Var3,[(1182,299)])
}
Add(If_else,7210001,525,336)
{
link(onTrue,9363:doStopFlag,[(567,342)(567,420)(260,420)(260,356)])
link(onFalse,4576585:doEvent1,[(576,349)(576,328)])
link(Op1,14716099:Var2,[(531,324)(496,324)])
link(Op2,7357616:Var2,[])
}
Add(Math,10123011,693,350)
{
OpType=7
Op2=2
link(onResult,3541718:doEvent1,[])
link(Op1,14590559:Var3,[(699,236)])
}
Add(GetDataEx,12663611,1043,294)
{
link(Data,14582755:Var3,[(857,294)(857,394)])
}
Add(For,1422687,1008,616)
{
IncludeEnd=1
link(onEvent,16689588:doCompare,[])
link(onStop,2697948:doCreate,[(1070,629)(1070,762)])
link(Start,14582755:Var2,[(1014,556)(776,556)])
link(End,3169758:Var2,[])
}
Add(If_else,16689588,1162,616)
{
link(onTrue,1422687:doStop,[(1223,622)(1223,675)(994,675)(994,629)])
link(onFalse,14880891:doRead,[])
link(Op1,15901818:Var2,[(1168,604)(1124,604)])
link(Op2,3169758:Var3,[(1175,579)])
}
Add(GetDataEx,3169758,1015,574)
{
link(Data,11676062:Var2,[])
}
Add(GetDataEx,14582755,770,389)
{
Angle=3
link(Data,10123011:Result,[(699,394)])
}
Add(GetDataEx,7357616,532,245)
{
link(Data,14590559:Var2,[])
}
Add(Button,13200831,119,329)
{
Left=15
Top=55
Caption="Расчет"
link(onClick,2452385:doEvent1,[])
}
Add(Edit,8564700,532,49)
{
Left=15
Top=15
}
Add(Math,12271454,1386,357)
{
link(onResult,5195423:doEvent1,[])
link(Op1,15354275:Var3,[(1392,345)(1263,345)(1263,411)])
link(Op2,5955211:Var2,[(1399,345)(1437,345)(1437,401)(1525,401)])
}
Add(Memory,7185836,1519,266)
{
Default=Real(0)
}
Add(Memo,3567889,1680,364)
{
Left=85
Top=10
Width=325
Height=225
ScrollBars=3
}
Add(Math,4527431,1442,623)
{
link(onResult,8729294:doEvent1,[])
link(Op1,11608567:Var3,[(1448,611)(1288,611)(1288,705)])
link(Op2,13697432:Var2,[(1455,611)(1493,611)(1493,667)(1574,667)])
}
Add(Memory,7447193,1568,553)
{
Default=Real(0)
}
Add(Memo,6565509,1694,630)
{
Left=430
Top=10
Width=325
Height=225
ScrollBars=3
}
Add(Hub,4576585,595,322)
{
OutCount=4
link(onEvent1,7185836:doClear,[(987,328)(987,279)])
link(onEvent2,7447193:doClear,[(987,335)(987,566)])
link(onEvent3,8972221:doClear,[(1050,342)(1050,776)])
link(onEvent4,10123011:doOperation,[(651,349)(651,356)])
}
Add(Hub,5195423,1449,357)
{
OutCount=3
link(onEvent1,7185836:doValue,[(1490,363)(1490,272)])
link(onEvent2,2301175:doValue,[(1533,370)(1533,349)])
link(onEvent3,7093707:doWrite,[(1501,377)(1501,440)])
}
Add(Memory,2301175,1603,343)
{
Point(Data)
link(onData,3567889:doAdd,[(1657,349)(1657,370)])
link(Data,7783589:Var3,[(1609,334)])
}
Add(GetDataEx,7783589,1519,329)
{
link(Data,7185836:Value,[])
}
Add(Hub,8729294,1505,623)
{
OutCount=3
link(onEvent1,7447193:doValue,[(1548,629)(1548,559)])
link(onEvent2,9121903:doValue,[(1571,636)(1571,615)])
link(onEvent3,12926802:doWrite,[(1547,643)(1547,706)])
}
Add(Memory,9121903,1624,609)
{
Point(Data)
link(onData,6565509:doAdd,[(1675,615)(1675,636)])
link(Data,10293478:Var3,[(1630,600)])
}
Add(GetDataEx,10293478,1568,595)
{
link(Data,7447193:Value,[])
}
Add(Math,10790089,350,336)
{
Op2=1
ResultType=0
link(onResult,6508325:doValue,[])
link(Op1,13251432:Var1,[(356,324)(384,324)(384,415)])
}
Add(Memory,6508325,406,336)
{
Default=Integer(-1)
link(onData,7210001:doCompare,[])
}
Add(MutexThread,15746545,882,350)
{
Delay=1
FastStop=0
OneWaitSyncExec=0
Point(doStopFlag)
link(onExec,2299397:doFor,[])
}
Add(MutexThread,7438655,882,616)
{
Delay=1
FastStop=0
OneWaitSyncExec=0
Point(doStopFlag)
link(onExec,1422687:doFor,[])
}
Add(MutexThread,9363,280,336)
{
Delay=1
OneWaitSyncExec=0
Point(doStopFlag)
link(onExec,10790089:doOperation,[])
}
Add(Hub,3541718,756,350)
{
OutCount=3
link(onEvent1,15746545:doStart,[])
link(onEvent2,7438655:doStart,[(826,363)(826,622)])
link(onEvent3,5500687:doWait,[(814,370)(814,839)])
}
Add(Matrix,12051191,910,84)
{
MatrixType=1
Point(Size)
link(Size,16562372:Result,[(916,56)(755,56)(755,198)(594,198)])
}
Add(Hub,2452385,210,329)
{
link(onEvent1,15381342:doEvent1,[(254,335)(254,160)])
link(onEvent2,9363:doStart,[])
}
Add(Math,16562372,588,154)
{
OpType=2
Op2=65537
ResultType=0
link(onResult,12051191:doSize,[(765,160)(765,90)])
link(Op1,16268648:Var3,[(594,124)])
}
Add(GetDataEx,16268648,532,119)
{
link(Data,8564700:Text,[])
}
Add(Hub,15381342,448,154)
{
link(onEvent1,16562372:doOperation,[])
link(onEvent2,3597073:doWork2,[(686,167)(686,97)])
}
Add(MatrixRW,5071433,1253,357)
{
link(onRead,11549611:doValue,[])
link(Matrix,1890957:Var2,[])
link(X,6318628:Var2,[])
link(Y,970361:Var2,[])
}
Add(Memory,11549611,1309,357)
{
link(onData,12271454:doOperation,[])
}
Add(MatrixRW,7093707,1540,427)
{
link(Matrix,16261328:Var2,[])
link(Value,5955211:Var3,[(1553,348)])
link(X,6318628:Var3,[(1560,341)])
link(Y,970361:Var3,[(1567,320)])
}
Add(GetDataEx,4154543,1253,203)
{
link(Data,12051191:Matrix,[(1259,124)(916,124)])
}
Add(GetDataEx,5955211,1519,343)
{
link(Data,7783589:Var2,[])
}
Add(GetDataEx,14716099,490,427)
{
Angle=2
link(Data,13915104:Var3,[(496,444)])
}
Add(MatrixRW,14880891,1302,623)
{
link(onRead,14655029:doValue,[])
link(Matrix,12023022:Var2,[])
link(X,9504770:Var2,[])
link(Y,15029965:Var2,[])
}
Add(Memory,14655029,1358,623)
{
link(onData,4527431:doOperation,[])
}
Add(GetDataEx,1890957,1253,287)
{
link(Data,4154543:Var2,[])
}
Add(GetDataEx,3157702,1125,392)
{
Angle=2
link(Data,15354275:Var2,[])
}
Add(GetDataEx,15901818,1118,679)
{
Angle=2
link(Data,11608567:Var2,[])
}
Add(GetDataEx,13915104,476,439)
{
Angle=3
link(Data,2908886:Var3,[])
}
Add(MatrixRW,12926802,1575,693)
{
link(Matrix,16261328:Var3,[(1581,250)])
link(Value,13697432:Var3,[(1588,621)])
link(X,9504770:Var3,[(1595,607)])
link(Y,15029965:Var3,[(1602,593)])
}
Add(GetDataEx,16261328,1540,245)
{
link(Data,4154543:Var3,[(1546,208)])
}
Add(GetDataEx,13697432,1568,616)
{
link(Data,10293478:Var2,[])
}
Add(GetDataEx,6318628,1267,336)
{
link(Data,14716099:Var3,[(1273,321)(890,321)(890,432)])
}
Add(GetDataEx,9504770,1316,602)
{
link(Data,13915104:Var2,[(1322,535)(482,535)])
}
Add(Events,14060616,1120,441)
{
Name="Event1"
}
Add(WaitMultiple,5500687,994,833)
{
Count=2
link(onWait,9245367:doFor,[])
link(Handle1,14060616:ObjHandle,[(1000,702)(1126,702)])
link(Handle2,2697948:ObjHandle,[(1007,811)(1105,811)])
}
Add(Events,2697948,1099,756)
{
Name="Event2"
}
Add(GetDataEx,13251432,392,410)
{
Angle=1
link(Data,6508325:Value,[(412,415)])
}
Add(GetDataEx,14590559,532,231)
{
link(Data,16268648:Var2,[])
}
Add(GetDataEx,970361,1274,315)
{
link(Data,3157702:Var3,[(1280,307)(1203,307)(1203,397)])
}
Add(GetDataEx,15029965,1323,588)
{
link(Data,15901818:Var3,[(1329,575)(1224,575)(1224,684)])
}
Add(For,9245367,1141,833)
{
IncludeEnd=1
link(onEvent,11661528:doRead,[])
link(End,11676062:Var3,[(1154,544)])
}
Add(GetDataEx,11676062,1015,539)
{
link(Data,7357616:Var3,[(1021,250)])
}
Add(Math,12256453,1365,833)
{
link(onResult,973046:doEvent1,[])
link(Op1,12411172:Value,[(1371,821)(1343,821)(1343,877)(1287,877)])
link(Op2,15289383:Var2,[(1378,821)(1416,821)(1416,877)(1497,877)])
}
Add(Memory,8972221,1491,763)
{
Default=Real(0)
}
Add(Memo,6106777,1617,840)
{
Left=775
Top=10
Width=325
Height=225
ScrollBars=3
}
Add(Hub,973046,1428,833)
{
link(onEvent1,8972221:doValue,[(1471,839)(1471,769)])
link(onEvent2,976171:doValue,[(1494,846)(1494,825)])
}
Add(Memory,976171,1547,819)
{
Point(Data)
link(onData,6106777:doAdd,[(1598,825)(1598,846)])
link(Data,15289383:Var3,[(1553,810)])
}
Add(GetDataEx,15289383,1491,805)
{
link(Data,8972221:Value,[])
}
Add(MatrixRW,11661528,1225,833)
{
link(onRead,12411172:doValue,[])
link(Matrix,12023022:Var1,[(1231,544)])
link(X,2908886:Var2,[(1245,630)(426,630)])
link(Y,9245367:Position,[(1252,792)(1200,792)(1200,877)(1147,877)])
}
Add(Memory,12411172,1281,833)
{
link(onData,12256453:doOperation,[])
}
Add(GetDataEx,12023022,1302,539)
{
link(Data,1890957:Var3,[(1308,292)])
}
Add(GetDataEx,2908886,420,439)
{
Angle=3
link(Data,13251432:Var2,[(398,444)])
}
Add(GetDataEx,15354275,1125,406)
{
Angle=2
link(Data,2299397:Position,[(1131,418)(1042,418)])
}
Add(GetDataEx,11608567,1118,700)
{
Angle=2
link(Data,1422687:Position,[(1124,714)(1014,714)])
}
Add(Button,875331,1295,140)
{
Left=15
Top=85
Caption="Очистить"
link(onClick,4824629:doEvent1,[])
}
Add(Hub,4824629,1365,140)
{
OutCount=4
link(onEvent1,3567889:doClear,[(1529,146)(1529,377)])
link(onEvent2,6565509:doClear,[(1537,153)(1537,643)])
link(onEvent3,6106777:doClear,[(1498,160)(1498,853)])
link(onEvent4,3597073:doWork3,[(1391,167)(1391,133)(886,133)])
}
Add(HubEx,3597073,882,91)
{
link(onEvent,12051191:doClear,[])
}

карма: 1

0