Compartilhar via


IClosableNotifier Interface

Definição

Quando implementado em uma classe de runtime do WinRT, fornece uma notificação de que um objeto foi fechado (descartado).

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

Comentários

A finalidade dessa interface é fornecer uma notificação confiável quando o objeto subjacente é fechado (descartado) e também uma maneira de verificar se o objeto está fechado.

Normalmente, um objeto precisaria saber quando outro objeto WinRT é fechado se depende desse objeto WinRT para satisfazer sua funcionalidade. Se o objeto WinRT do qual ele depende estiver fechado, você poderá executar operações de limpeza e/ou cancelar o registro de eventos.

Estado do objeto quando os eventos são gerados

Quando o evento Closed ou FrameworkClosed é processado, o objeto WinRT subjacente já está fechado. Se você tentar acessar as propriedades do objeto (exceto IsClosed) ou métodos, RO_E_CLOSED será retornado após esse ponto. As únicas operações permitidas são cancelar a gravação de eventos e verificar a propriedade IsClosed no objeto.

Ordem dos eventos

Os eventos Closed e FrameworkClosed são gerados em pares. Primeiro, o evento FrameworkClosed é gerado para dar às estruturas a chance de limpar seu estado, em seguida, o evento Closed é gerado para também dar ao código do aplicativo a chance de limpar.

As estruturas respondem ao primeiro evento para que possam se preparar para que um aplicativo chame a estrutura depois que o objeto for fechado. Por exemplo, uma estrutura pode nullestado interno para que os aplicativos que tentam usar esse estado recebam um erro apropriado em vez de tentar operar em um estado inválido.

Possíveis maneiras pelas quais um objeto WinRT pode ser fechado

  • Se o objeto WinRT estiver associado a um determinado thread, ele normalmente será fechado quando o thread for encerrado.
  • Se o objeto WinRT implementar IClosable.Close, o código externo poderá solicitar explicitamente que ele seja fechado.
  • Se a última referência forte ao objeto tiver sido liberada, o objeto poderá ser fechado.

Nenhum remetente ou args para o evento

Se os eventos e forem gerados em um objeto WinRT que foi descartado e não tiver referências mais fortes mantendo-o na memória, o remetente e os parâmetros de args de evento de um typedEventHandler seria . Para dar suporte a esse caso, esses eventos não fornecem o remetente ou os args de evento e o ClosableNotifierHandler não usa parâmetros. O assinante dos eventos é responsável por saber a qual objeto WinRT ele está inscrito.

Propriedades

IsClosed

Obtém um valor que indica se o objeto está fechado (descartado).

Eventos

Closed

Ocorre quando o objeto foi fechado (descartado), após o evento FrameworkClosed, para notificar o aplicativo de que o objeto está fechado.

FrameworkClosed

Ocorre quando o objeto foi fechado (descartado), antes do evento Closed, para notificar a estrutura (como XAML) de que o objeto está fechado.

Aplica-se a