Compartilhar via


System.Runtime.Remoting.Lifetime Namespace

Contém classes que gerenciam o tempo de vida de objetos remotos.

Classes

ClientSponsor

Fornece uma implementação padrão de uma classe responsável pelo tempo de vida.

LifetimeServices

Controla os serviços de tempo de vida de comunicação remota do .NET.

Interfaces

ILease

Define um objeto de concessão de tempo de vida que é usado pelo serviço de tempo de vida de comunicação remota.

ISponsor

Indica que o implementador deseja ser um responsável de concessão de tempo de vida.

Enumerações

LeaseState

Indica os estados possíveis de concessão de uma concessão de tempo de vida.

Comentários

Tradicionalmente, a coleta de lixo distribuída usa contagens de referência e ping para controlar o tempo de vida de objetos. Isso funciona bem quando há alguns clientes por serviço, mas não dimensiona bem quando há milhares de clientes por serviço. O serviço de tempo de vida de comunicação remota associa uma concessão a cada serviço e exclui um serviço quando seu tempo de concessão expira. O serviço de vida útil pode assumir a função de um coletor de lixo distribuído tradicional e também se ajusta bem quando os números de clientes por servidor aumentam.

Cada domínio de aplicativo contém um Gerenciador de concessão que é responsável pelo controle de concessões em seu domínio. Todas as concessões são examinadas periodicamente para tempos de concessão expirados. Se uma concessão tiver expirado, um ou mais dos patrocinadores da concessão serão invocados e receberão a oportunidade de renovar a concessão. Se nenhum dos patrocinadores decidir renovar a concessão, o Gerenciador de concessão removerá a concessão e o objeto poderá ser coletado pelo coletor de lixo. O Gerenciador de concessão mantém uma lista de concessão com concessões classificadas pelo tempo de concessão restante. As concessões com o menor tempo restante são armazenadas na parte superior da lista.