IClosableNotifier Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 |
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é. |