IClosableNotifier Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 null
estado 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 |
FrameworkClosed |
Se produce cuando el objeto se ha cerrado (eliminado), antes del evento closed |