Lenguaje

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 Closed evento o FrameworkClosed , el objeto WinRT subyacente ya está cerrado. Si intenta tener 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 IsClosed propiedad en el objeto .

Orden de los eventos

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

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 null-out el estado interno 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 Closed eventos 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, los parámetros sender y event args de un TypedEventHandler serían null. Para admitir este caso, estos eventos no proporcionan los argumentos de remitente o evento y ClosableNotifierHandler no toma ningún parámetro. El suscriptor a los eventos es responsable de saber a qué objeto de WinRT está suscrito.

Propiedades

Nombre Description
IsClosed

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

Eventos

Nombre Description
Closed

Se produce cuando el objeto se ha cerrado (eliminado), después del evento FrameworkClosed , 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