ActivityCollection.GetEnumerator Metoda

Definicja

Implementuje interfejs wyliczania do elementu ICollection.

public:
 System::Collections::Generic::IEnumerator<System::Workflow::ComponentModel::Activity ^> ^ GetEnumerator();
public System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity> GetEnumerator();
override this.GetEnumerator : unit -> System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity>
Public Function GetEnumerator () As IEnumerator(Of Activity)

Zwraca

Moduł wyliczający, który może iterować przez ReadOnlyCollectionBase wystąpienie.

Implementuje

Uwagi

Moduły wyliczające umożliwiają tylko odczytywanie danych w kolekcji. Nie można używać modułów wyliczania do modyfikowania podstawowej kolekcji.

Aby rozpocząć, moduł wyliczający jest umieszczony przed pierwszym elementem w kolekcji. Reset powoduje również powrót modułu wyliczającego do tej pozycji. Na tym stanowisku wywołanie Current wywołuje wyjątek. W związku z tym należy wywołać metodę MoveNext , aby przejść do pierwszego elementu kolekcji przed odczytaniem wartości Current.

Current metoda zwraca ten sam obiekt do momentu wywołania metody MoveNext lub Reset . MoveNext ustawia Current wartość na następny element.

Po przekazaniu końca kolekcji moduł wyliczający jest umieszczony po ostatnim elemenie w kolekcji, a wywołanie zwraca wartość MoveNextfalse. Jeśli ostatnie wywołanie zwracane MoveNextfalse, wywołanie Current wywołania zgłasza wyjątek.

Aby ponownie ustawić Current pierwszy element kolekcji, możesz wywołać Reset metodę , a następnie .MoveNext

Moduł wyliczający pozostaje prawidłowy, o ile kolekcja pozostaje niezmieniona. Jeśli zmiany zostaną wprowadzone w kolekcji, takie jak dodawanie, modyfikowanie lub usuwanie elementów, moduł wyliczający jest nieodwracalnie unieważniany, a następne wywołanie lub wywołanie MoveNext metody Reset .InvalidOperationException Jeśli kolekcja zostanie zmodyfikowana między parametrami MoveNext i Current, Current zwróci element, na który został ustawiony, nawet jeśli moduł wyliczający jest już unieważniony.

Moduł wyliczający nie ma wyłącznego dostępu do kolekcji; w związku z tym wyliczanie za pośrednictwem kolekcji nie jest wewnętrznie procedurą bezpieczną wątkowo. Nawet w przypadku synchronizacji kolekcji inne wątki nadal mogą modyfikować kolekcję. Spowoduje to wystąpienie wyjątku przez moduł wyliczający. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, możesz zablokować kolekcję podczas całego wyliczenia lub przechwycić wyjątki wynikające ze zmian wprowadzonych przez inne wątki.

Dotyczy