DrawingCollection.GetEnumerator Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca moduł wyliczający, który może wykonać iterację kolekcji.
public:
System::Windows::Media::DrawingCollection::Enumerator GetEnumerator();
public System.Windows.Media.DrawingCollection.Enumerator GetEnumerator ();
member this.GetEnumerator : unit -> System.Windows.Media.DrawingCollection.Enumerator
Public Function GetEnumerator () As DrawingCollection.Enumerator
Zwraca
Moduł wyliczający, który może iterować kolekcję.
Uwagi
Moduły wyliczające zezwalają tylko na odczytywanie danych w kolekcji. Moduły wyliczania nie mogą służyć do modyfikowania podstawowej kolekcji.
Początkowo moduł wyliczający jest umieszczony przed pierwszym elementem w kolekcji. W tej pozycji wywołanie Current zgłasza 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 element na następny.
Po przekazaniu końca kolekcji moduł wyliczający jest umieszczony po ostatnim elemencie w kolekcji, a wywołanie MoveNext metody zwraca wartość false
. Jeśli ostatnie wywołanie zwracane MoveNext false
, wywołanie Current metody zgłasza wyjątek. Aby ponownie ustawić Current element na pierwszy element kolekcji, możesz wywołać Reset metodę , a następnie .MoveNext
Moduł wyliczający zachowuje ważność tak długo, jak długo kolekcja pozostaje niezmieniona. W przypadku wprowadzania zmian w kolekcji, takich jak dodawanie, modyfikowanie lub usuwanie elementów, moduł wyliczający jest nieodwracalnie unieważniany, a następne wywołanie MoveNext metody lub Reset zgłasza InvalidOperationExceptionbłąd . Jeśli kolekcja zostanie zmodyfikowana między elementami MoveNext i Current, Current zwróci element ustawiony na , 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 w kolekcji nie jest wewnętrznie procedurą odporną na wielowątkowość. Nawet w przypadku synchronizacji kolekcji inne wątki mogą nadal modyfikować kolekcję, co powoduje zgłoszenie wyjątku przez moduł wyliczający. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, można zablokować kolekcję podczas całego procesu wyliczania albo rejestrować wyjątki wynikłe ze zmian wprowadzanych przez inne wątków.