WeakReference — Klasa
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
Składnia
class WeakReference;
Uwagi
Reprezentuje słabe odwołanie, które może być używane z środowisko wykonawcze systemu Windows lub klasycznym COM. Słabe odwołanie reprezentuje obiekt, który może lub nie jest dostępny.
WeakReference
Obiekt utrzymuje silne odwołanie, które jest wskaźnikiem do obiektu i silną liczbą odwołań, która jest liczbą kopii silnego odwołania, które zostały rozproszone przez metodęResolve()
. Chociaż silna liczba odwołań jest niezerowa, silne odwołanie jest prawidłowe i obiekt jest dostępny. Gdy silna liczba odwołań stanie się zero, silne odwołanie jest nieprawidłowe i obiekt jest niedostępny.
WeakReference
Obiekt jest zwykle używany do reprezentowania obiektu, którego istnienie jest kontrolowane przez wątek zewnętrzny lub aplikację. Na przykład skonstruuj WeakReference
obiekt z odwołania do obiektu pliku. Gdy plik jest otwarty, silne odwołanie jest prawidłowe. Jeśli jednak plik zostanie zamknięty, silne odwołanie stanie się nieprawidłowe.
Metody WeakReference
są bezpieczne wątkami.
Członkowie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
WeakReference::WeakReference | Inicjuje nowe wystąpienie klasy WeakReference . |
WeakReference::~WeakReference | Deinitializes (niszczy) bieżące wystąpienie WeakReference klasy. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
WeakReference::D ecrementStrongReference | Dekrementuje silną liczbę odwołań bieżącego WeakReference obiektu. |
WeakReference::IncrementStrongReference | Zwiększa silną liczbę odwołań bieżącego WeakReference obiektu. |
WeakReference::Resolve | Ustawia określony wskaźnik na bieżącą silną wartość referencyjną, jeśli silna liczba odwołań jest niezerowa. |
WeakReference::SetUnknown | Ustawia silne odwołanie bieżącego WeakReference obiektu do określonego wskaźnika interfejsu. |
Hierarchia dziedziczenia
WeakReference
Wymagania
Nagłówek: implements.h
Przestrzeń nazw: Microsoft::WRL::D etails
WeakReference::~WeakReference
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
virtual ~WeakReference();
Wartość zwracana
Uwagi
Deinitializuje bieżące wystąpienie WeakReference
klasy.
WeakReference::D ecrementStrongReference
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
ULONG DecrementStrongReference();
Uwagi
Dekrementuje silną liczbę odwołań bieżącego WeakReference
obiektu.
Gdy silna liczba odwołań zmieni się na zero, silne odwołanie jest ustawione na nullptr
wartość .
Wartość zwracana
Zdekrementowana silna liczba odwołań.
WeakReference::IncrementStrongReference
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
ULONG IncrementStrongReference();
Wartość zwracana
Zwiększana liczba silnych odwołań.
Uwagi
Zwiększa silną liczbę odwołań bieżącego WeakReference
obiektu.
WeakReference::Resolve
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
STDMETHOD(Resolve)
(REFIID riid,
_Deref_out_opt_ IInspectable **ppvObject
);
Parametry
Riid
Identyfikator interfejsu.
ppvObject
Po zakończeniu tej operacji kopia bieżącego silnego odwołania, jeśli silna liczba odwołań jest niezerowa.
Wartość zwracana
S_OK, jeśli ta operacja zakończy się pomyślnie, a silna liczba odwołań wynosi zero. Parametr ppvObject jest ustawiony na
nullptr
wartość .S_OK, jeśli ta operacja zakończy się pomyślnie, a silna liczba odwołań jest niezerowa. Parametr ppvObject jest ustawiony na silne odwołanie.
W przeciwnym razie hrESULT wskazujący przyczynę niepowodzenia tej operacji.
Uwagi
Ustawia określony wskaźnik na bieżącą silną wartość referencyjną, jeśli silna liczba odwołań jest niezerowa.
WeakReference::SetUnknown
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
void SetUnknown(
_In_ IUnknown* unk
);
Parametry
Unk
Wskaźnik do IUnknown
interfejsu obiektu.
Uwagi
Ustawia silne odwołanie bieżącego WeakReference
obiektu do określonego wskaźnika interfejsu.
WeakReference::WeakReference
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
WeakReference();
Uwagi
Inicjuje nowe wystąpienie klasy WeakReference
.
Silny wskaźnik odniesienia dla WeakReference
obiektu jest inicjowany do nullptr
, a silna liczba odwołań jest inicjowana do 1.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla