pMe | (Object) Reference na PmaSequencer objekt, ve kterém daná událost vzniká. |
---|---|
pEvent | (Object) Reference na objekt, který popisuje informace o dané události. pEvent.ReleaseType - (Integer) Příčina uvolnění položky: 0 - položka nečekala, tzn. v metodě Add byl timeout=0 1 - položka čekala a timeout vypršel 2 - položka čekala a byla zavolána metoda Release pEvent.ReleaseCancel - (Boolean) Přednastaveno vždy na false. Pokud se nastaví na true, pak položka pokračuje v čekání (pouze pokud událost nastala voláním metody Release, tzn. pokud pEvent.ReleaseType=2). |
Objekt PmaSequencer je vyjímečný, protože jeho událost onStep je vyvolána v hlavním nebo pracovním vlákně ("thread:work;" nebo "thread:main;"). Proto byly metody interně zdvojeny a přeloženy jak v hlavním, tak v pracovním vlákně. Pokud se metoda vyvolá z pracovního vlákna, pak bude provedena přímo v pracovním vlákně. V ostatních případech se stejně jako u metod ostatních objektů provede v hlavním vlákně.
Toto umožňuje snadné vytvoření pomocných funkcí tak, aby událost onStep mohla být přehlednější. Dokonce i při střídavém vyvolávaní události onStep v hlavním nebo pracovním vlákně je pak automaticky volána metoda v tomtéž vlákně.
switch (pEvent.Val1)
{
case "A":
//Provést akci A
pMe.Add(2, "B", 1);
break;
case "B":
//Provést akci B
pMe.Add(2, "C", 1);
break;
case "C":
//Provést akci C
pMe.Add(2, "A", 1);
break;
}