Compartir a través de


IClosableNotifier Interfaz

Definición

Cuando se implementa en una clase en tiempo de ejecución de WinRT, proporciona una notificación de que se ha cerrado un objeto (eliminado).

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
Derivado
Atributos

Comentarios

El propósito de esta interfaz es proporcionar una notificación confiable cuando el objeto subyacente está cerrado (desechado) y también una manera de comprobar si el objeto está cerrado.

Normalmente, un objeto tendría que saber cuándo se cierra otro objeto winRT si depende de ese objeto winRT para satisfacer su funcionalidad. Si el objeto winRT depende de está cerrado, puede realizar operaciones de limpieza o anular el registro de eventos.

Estado del objeto cuando se generan eventos

Cuando se procesa el evento Closed o FrameworkClosed, el objeto WinRT subyacente ya está cerrado. Si intenta obtener acceso a las propiedades del objeto (excepto IsClosed) o métodos, RO_E_CLOSED se devuelve después de este punto. Las únicas operaciones permitidas son anular la suscripción de eventos y comprobar la propiedad IsClosed en el objeto .

Orden de eventos

Los eventos Closed y FrameworkClosed se generan en pares. En primer lugar, se genera el evento FrameworkClosed para dar a los marcos una oportunidad de limpiar su estado y, a continuación, se genera el evento Closed para dar también a código de aplicación la oportunidad de limpiar.

Los marcos responden al primer evento para que puedan prepararse para que una aplicación llame a en el marco una vez cerrado el objeto. Por ejemplo, un marco puede nullestado interno fuera para que las aplicaciones que intenten usar ese estado recibirán un error adecuado en lugar de intentar operar en un estado no válido.

Posibles formas en que se puede cerrar un objeto WinRT

  • Si el objeto WinRT está enlazado a un subproceso determinado, normalmente se cierra cuando se cierra el subproceso.
  • Si el objeto WinRT implementa IClosable.Close, el código externo puede solicitar explícitamente que se cierre.
  • Si se ha liberado la última referencia fuerte al objeto, se puede cerrar el objeto.

Ningún remitente o argumento para el evento

Si los eventos Closed y FrameworkClosed se generan en un objeto WinRT que se ha eliminado y no tiene referencias más seguras que lo contengan en la memoria, el remitente y los parámetros de argumentos de evento de un TypedEventHandler sería null. Para admitir este caso, estos eventos no proporcionan el remitente ni argumentos de eventos y el ClosableNotifierHandler no toma ningún parámetro. El suscriptor a los eventos es responsable de saber a qué objeto de WinRT está suscrito.

Propiedades

IsClosed

Obtiene un valor que indica si el objeto está cerrado (eliminado).

Eventos

Closed

Se produce cuando el objeto se ha cerrado (eliminado), después del evento frameworkClosed de , para notificar a la aplicación que el objeto está cerrado.

FrameworkClosed

Se produce cuando el objeto se ha cerrado (eliminado), antes del evento closed , para notificar al marco (como XAML) que el objeto está cerrado.

Se aplica a