Вверх ↑
Разработчик
Ответов: 26170
Рейтинг: 2127
#1: 2009-10-13 15:43:14 ЛС | профиль | цитата
Ravilr писал(а):
в вики бы записать это

О то, пока никуда ничего писать не надо. Это требует дополнительных исследований. Посмотрим, что скажет Nic или tsdima, они юзают сервисы
------------ Дoбавленo в 15.55:
А вот так можно сделать, синхронизированный с событием самого сервиса, режим чтения, используя критические секции



Add(NTService,4861962,231,273)
{
Description="Probe"
RunType=0
link(onStart,15354477:doEvent1,[(275,279)(275,223)])
link(onStep,16420265:doSafeMode,[(294,286)(294,321)])
link(onStop,16084413:doEvent1,[(275,293)(275,349)])
}
Add(Message,15111937,644,322)
{
Caption="Service"
}
Add(Hub,15354477,287,217)
{
OutCount=3
link(onEvent1,12839073:doOpen,[])
link(onEvent2,6197093:doMessage,[(315,230)(315,244)])
link(onEvent3,13847578:doStart,[(310,237)(310,286)])
}
Add(Message,6197093,329,238)
{
Message="Probe"
Caption="Start Service"
}
Add(Hub,16084413,287,343)
{
OutCount=3
link(onEvent1,12839073:doClose,[(452,349)(452,244)])
link(onEvent2,7827722:doMessage,[(319,356)(319,370)])
link(onEvent3,13847578:doStop,[(311,363)(311,293)])
}
Add(Message,7827722,329,364)
{
Message="Probe"
Caption="Stop Service"
}
Add(UDP,12839073,462,217)
{
LocalPort=1002
ReceiveMode=1
link(onReceive,13200461:doValue,[])
}
Add(Thread,13847578,329,280)
{
Delay=50
link(onExec,6938609:doSafeMode,[])
}
Add(Case,1574250,567,315)
{
Value=String()
link(onNextCase,16206402:doEvent1,[])
}
Add(SafeMode,6938609,378,280)
{
link(onSafeMode,12839073:doReceive,[(433,286)(433,237)])
}
Add(Memory,13200461,518,217)
{
Default=String()
}
Add(SafeMode,16420265,462,315)
{
WaitMode=1
link(onSafeMode,2661767:doData,[])
}
Add(DoData,2661767,518,315)
{
link(onEventData,1574250:doCase,[])
link(Data,13200461:Value,[])
}
Add(Hub,16206402,609,315)
{
link(onEvent1,13200461:doClear,[(635,321)(635,201)(504,201)(504,230)])
link(onEvent2,15111937:doMessage,[])
}

карма: 22

0