А вот такая схема:
Add(Thread,3187940,161,105)
{
link(onSyncExec,3721202:doWork1,[(228,118)])
}
Add(Thread,11817348,161,175)
{
link(onSyncExec,3721202:doWork3,[(228,188)])
}
Add(For,11361622,259,147)
{
}
Add(HubEx,3721202,224,140)
{
link(onEvent,11361622:doFor,[])
}
вообще соблязняет идея сделать некоторый подтип точек ##MT_XXX, которые для событий и данных возвращали бы в поток Self текущей схемы вместе с данными через точку, а для методов и св-тв наоборот принимали бы Self из потока(так же вместе с данными) и миную всякие ##Select сразу же вызывали бы точки нужного экземпляра схемы. При таком подходе работа могла бы выглядеть так:
Add(MultiElementEx,10015731,280,189)
{
link(onEvent,627223:doGet,[])
}
BEGIN_SDK
Add(EditMultiEx,15553146,3,3)
{
WorkCount=#6:doWork|
EventCount=#7:onEvent|
}
END_SDK
Add(MT_Get,627223,336,189)
{
link(onData,944798:doValue,[])
link(onGet,14880513:Method,[(385,202)(385,254)])
}
Add(Memory,944798,392,189)
{
}
Add(MT_Add,5086822,224,189)
{
link(onAdd,10015731:doWork,[])
link(Data,944798:Value,[(230,179)(320,179)(320,231)(398,231)])
}
Add(PointHint,14880513,427,231)
{
Info=#55:Получаем событие из схемы с некоторыми данными в потоке|
VAlign=0
Width=141
Height=46
link(Event,12465804:Method,[(584,254)(584,319)(22,319)(22,250)])
}
Add(PointHint,12465804,35,227)
{
Info=#67:Выполняем все, что требуется и пересылаем данные в нужную нам схему|
VAlign=0
Width=155
Height=46
link(Event,5086822:doAdd,[(207,250)(207,195)])
}
Add(InfoTip,15323863,189,287)
{
Info=#21:Делаем все, что хотим|
Transparent=1
VAlign=1
Width=239
Height=67
}
Add(InfoTip,8085811,378,119)
{
Info=#29:Сохраняем Self активной схемы|
Height=109
}
Add(InfoTip,8273264,210,126)
{
Info=#26:Подшиваем сохраненный Self|
Height=109
}