Maksymalna ilość elementów | Maksymalna ilość elementów, które mogą jednocześnie czekać w obiekcie PmaSequencer.
Konfigurator ten ustawia wartość początkową właściwości MaxSize. Wartość -1 przedstawia nieograniczoną ilość elementów. Ograniczenie jest wskazane by zapobiec stworzeniu błędów projektanckich, kiedy to ilość czekających pozycji mógł rosnąć ponad wszelkie limity. |
---|---|
Typ uruchamiania elementów | Sens timeouta. Timeout określa się w metodzie Add.
0 = pozycje są uruchamiane niezależnie, każdy według swego timeouta - To znaczy, że timeout jest okresem pomiędzy wprowadzeniem pozycji (przy pomocy metody Add) a jego uruchomieniem (zdarzeniem onStep).
1 = pozycje są uruchamiane stopniowo, timeout jest opóźnieniem pomiędzy nimi - To znaczy, że timeout jest okresem pomiędzy zwolnieniem poprzedniej pozycji oraz uruchomieniem następnej pozycji.
Jeżeli przy wywołaniu metody Add w obiekcie nie znajduje się żadena czekająay pozycja a ostatnia pozycja była uruchomiona przed dłuższym czasem niż timeout, wtedy zostanie ten nowy pozycja uruchomiony natychmiast. |
Zastosowany wątek (thread) | Określa wątek (thread), w którym zostanie uruchomiony skrypt zdarzenia onStep. Opcja "nowy wątek roboczy" oznacza, że dany obiekt PmaSequencer po uruchomieniu aplikacji wytworzy nowy wątek o określonym pryorytecie. Patrz również: Jak uruchamiać skrypty w innym wątku (threadu). |
Timeout podczas zatrzymywania przed zakończeniem wątku roboczego [s] | Ważne tylko dla nowego wątku roboczego! Limit czasu (timeout), w którym system podczas zatrzymywania aplikacji czeka na zakończenie aktualnie uruchomionej pozycji, po którym dojdzie do twardego wyłączenia wątku roboczego (twarde wyłączenie jest wszak niebezpieczne oraz niepożądane). Jeżeli akurat nie jest wykonywana żadna pozycja, lub pozycja została poprawnie zakończona w określonym limicie czasu, wtedy wątek roboczy zostanie poprawnie zakończony (ewentualne czekające pozycje w kolejce zostaną pominięte). Wątek roboczy można podczas zamykania aplikacji zatrzymać prawidłowo (bezpiecznie) tylko jeżeli w danej chwili nie jest wykonywana żadna pozycja. Jeżeli w danej chwili jest wykonywana, wtedy jest konieczne chwilę poczekać na jej zakończenie. By nie czekać zbyt długo (jeżeli doszło do nieoczekiwanie długiego wykonywania pozycji) istnieje limit czasu, w którym system odczeka zanim twardo zakończy wątek roboczy.
Uwaga! W normalnych okolicznościach, projektant powinien zapewnić, żeby nie dochodziło do wymuszonego zakończenia pracy (wątku roboczego). Można to osiągnąć w prosty sposób przez ustawienie wystarczająco dużego limitu nawet dla najdłuższego wymogu. Czasochłonne wymogi można często skrócić tak, że podczas zatrzymania aplikacji zostanie ustawiona globalna zmienna użytkownika, wskazujący zatrzymywanie aplikacji. Podczas przetwarzania wymogu należy testować tą zmienną a w przypadku wykrycia zatrzymywania aplikacji należy przedwcześnie zakończyć wymóg nawet jeżeli nie zostanie wykonany do końca. Jest to bardzo przydatne podczas długich iteracyjnych obliczeń lub przetwarzania poszczególnych elementów dużego pakietu danych. Do wprowadzenia można zastosować Makro wyrażenie (wartość jest obliczana po uruchomieniu aplikacji). |