Вверх ↑
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
#91: 2017-02-24 21:50:30 ЛС | профиль | цитата
Тема старая, но очень интересная!
Nesco, вы схемку выкладывали

Add(MainForm,11176470,623,133)
{
Left=20
Top=105
Width=527
Caption="MemoryMapFile"
Point(onClose)
link(onCreate,14190799:doEvent1,[])
}
Add(DoData,2298906,693,210)
{
link(onEventData,1143428:doPut,[])
link(Data,11804486:Text,[(699,201)(790,201)(790,257)(888,257)])
}
Add(DataToFile,1143428,749,210)
{
Type=5
Point(doPosition)
Point(Position)
link(onGet,398725:doEvent1,[])
link(Stream,11748904:Stream,[])
}
Add(Hub,9182042,637,203)
{
link(onEvent1,2836025:doWork1,[(669,209)])
link(onEvent2,2298906:doData,[])
}
Add(HubEx,2836025,665,224)
{
link(onEvent,1143428:doPosition,[])
}
Add(Hub,1104125,637,280)
{
link(onEvent1,2836025:doWork3,[(669,286)])
link(onEvent2,1143428:doGet,[(733,293)(733,223)])
}
Add(SharedStream,11748904,749,147)
{
CoreName="My_MapFile"
PageMem=4
link(onOpen,11176470:doCaption,[(788,153)(788,125)(613,125)(613,139)])
}
Add(Memo,11804486,882,196)
{
Width=574
Height=387
Align=5
Font=[Courier New,10,1,0,204]
Point(doSetSelStart)
Point(onKeyUp)
link(onChange,13184547:doEvent,[])
}
Add(Hub,14190799,672,147)
{
link(onEvent1,11748904:doOpen,[])
link(onEvent2,2286399:doWork,[(697,160)(697,195)(256,195)(256,230)])
}
Add(Events,9649812,511,224)
{
Name="MyCoolEvent"
ManualReset=1
AddHint(-30,-25,78,13,Name)
}
Add(WaitObject,9175818,511,273)
{
link(ObjHandle,9649812:ObjHandle,[])
AddHint(2,40,24,13,Time)
}
Add(Thread,13945738,455,273)
{
Delay=0
link(onExec,9175818:doWait,[])
link(onSyncExec,7396459:doWork,[])
}
Add(Hub,8704945,364,224)
{
link(onEvent1,9649812:doCreate,[])
link(onEvent2,14910826:doWork1,[(424,237)])
}
Add(Hub,11297637,364,273)
{
OutCount=5
link(onEvent1,9182042:doEvent1,[(389,279)(389,209)])
link(onEvent2,13945738:doStop,[])
link(onEvent3,9649812:doSet,[(431,293)(431,237)])
link(onEvent4,9649812:doReset,[(438,300)(438,244)])
link(onEvent5,14910826:doWork3,[(424,307)])
}
Add(HubEx,14910826,420,273)
{
link(onEvent,13945738:doStart,[])
}
Add(Check,2286399,266,224)
{
Caption="CreateEvent"
link(onEvent,8704945:doEvent1,[])
}
Add(Check,13004025,266,273)
{
Caption="Write"
link(onEvent,11297637:doEvent1,[])
}
Add(Check,7396459,567,280)
{
Caption="Read"
link(onEvent,1104125:doEvent1,[])
}
Add(Hub,398725,826,210)
{
OutCount=3
link(onEvent1,14592248:doReset,[(851,216)(851,160)])
link(onEvent2,11804486:doText,[])
link(onEvent3,14592248:doOn,[(858,230)(858,167)])
}
Add(IndexToChanel,13184547,938,196)
{
Point(Index)
link(onEvent1,13004025:doWork,[(977,202)(977,321)(256,321)(256,279)])
link(Index,14592248:State,[])
}
Add(Switch,14592248,938,147)
{
DataOn=Integer(0)
DataOff=Integer(1)
Default=0
Point(doOn)
Point(State)
}
Обмен через SharedStream "с уведомлением".
Вопрос: можно ли использовать critical section вместо остановки\запуска потока?

Редактировалось 2 раз(а), последний 2017-02-24 22:20:24
карма: 0

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