Partager via


IClosableNotifier Interface

Définition

En cas d’implémentation dans une classe runtime WinRT, fournit une notification indiquant qu’un objet a été fermé (supprimé).

public interface class IClosableNotifier
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65540)]
/// [Windows.Foundation.Metadata.Guid(696903995, 60687, 24185, 144, 242, 234, 197, 146, 252, 110, 106)]
struct IClosableNotifier
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65540)]
[Windows.Foundation.Metadata.Guid(696903995, 60687, 24185, 144, 242, 234, 197, 146, 252, 110, 106)]
public interface IClosableNotifier
Public Interface IClosableNotifier
Dérivé
Attributs

Remarques

L’objectif de cette interface est de fournir une notification fiable lorsque l’objet sous-jacent est fermé (supprimé) et d’un moyen de vérifier si l’objet est fermé.

En règle générale, un objet doit savoir quand un autre objet WinRT est fermé s’il dépend de cet objet WinRT pour satisfaire ses fonctionnalités. Si l’objet WinRT dont il dépend est fermé, vous pouvez effectuer des opérations de nettoyage et/ou annuler l’inscription à partir d’événements.

État de l’objet lorsque des événements sont déclenchés

Lorsque l’événement Closed ou FrameworkClosed est traité, l’objet WinRT sous-jacent est déjà fermé. Si vous tentez d’accéder aux propriétés de l’objet (sauf IsClosed) ou aux méthodes, RO_E_CLOSED est retournée après ce point. Les seules opérations autorisées sont désinscrits des événements et vérifient la propriété IsClosed sur l’objet.

Ordre des événements

Les événements Closed et FrameworkClosed sont déclenchés en paires. Tout d’abord, l’événement FrameworkClosed est déclenché pour donner aux frameworks une chance de nettoyer leur état, puis l’événement Closed est déclenché pour donner également au code de l’application une chance de nettoyer.

Les frameworks répondent au premier événement afin qu’ils puissent préparer une application à appeler dans l’infrastructure une fois l’objet fermé. Par exemple, une infrastructure peut null-out un état interne afin que les applications qui tentent d’utiliser cet état reçoivent une erreur appropriée plutôt que d’essayer d’opérer sur un état non valide.

Méthodes possibles de fermeture d’un objet WinRT

  • Si l’objet WinRT est lié à un certain thread, il est généralement fermé lorsque le thread se ferme.
  • Si l’objet WinRT implémente IClosable.Close, le code externe peut demander explicitement qu’il soit fermé.
  • Si la dernière référence forte à l’objet a été libérée, l’objet peut être fermé.

Aucun expéditeur ou argument pour l’événement

Si les événements Closed et FrameworkClosed sont déclenchés sur un objet WinRT qui a été supprimé et n’ont pas de références plus fortes en mémoire, l’expéditeur et les paramètres d’arguments d’événement d’un TypedEventHandler seraient null. Pour prendre en charge ce cas, ces événements ne fournissent pas l’expéditeur ou les arguments d’événement et le ClosableNotifierHandler ne prend aucun paramètre. L’abonné aux événements est responsable de savoir à quel objet WinRT il est abonné.

Propriétés

IsClosed

Obtient une valeur qui indique si l’objet est fermé (supprimé).

Événements

Closed

Se produit lorsque l’objet a été fermé (supprimé), après l’événement FrameworkClosed , pour avertir l’application que l’objet est fermé.

FrameworkClosed

Se produit lorsque l’objet a été fermé (supprimé), avant l’événement Closed, pour avertir l’infrastructure (par exemple, XAML) que l’objet est fermé.

S’applique à