В принципе, вместо SafeMode можно использовать глобальную переменную (в пределах одной программы):
Add(MultiElement,14563708,455,189)
{
}
BEGIN_SDK
Add(EditMulti,8200801,21,21)
{
EventCount=1
WorkCount=1
link(doWork1,9867460:doWork2,[(53,27)(53,111)])
}
Add(GlobalVar,3034072,147,56)
{
Name="_mutex"
Data=Integer(0)
}
Add(IndexToChanel,5837253,147,105)
{
Point(Index)
link(onEvent1,7475528:doEvent1,[])
link(onEvent2,9867460:doWork3,[(191,118)(191,143)(137,143)])
link(Index,3034072:Var,[])
}
Add(ChanelToIndex,889370,105,56)
{
link(onIndex,3034072:doValue,[])
}
Add(Hub,7475528,203,105)
{
OutCount=3
link(onEvent1,889370:doWork2,[(229,111)(229,92)(96,92)(96,69)])
link(onEvent2,8200801:onEvent1,[(269,118)(269,27)])
link(onEvent3,889370:doWork1,[(234,125)(234,97)(89,97)(89,62)])
}
Add(HubEx,9867460,133,105)
{
link(onEvent,5837253:doEvent,[])
}
END_SDK
Но это так, изыск...
Ещё вопрос: компонент MutexThread - это смесь Thread и SafeMode? Т.е. второй MutexThread с таким же PrefixName, как у первого, не запустится, пока первый MutexThread не отработает, я правильно понимаю?
Мало сведений и примеров по компонентам: Mutex, MutexThread, Events, WaitObject.