Compartilhar via


Eventos e retornos de chamada

O método callback é um método que é automaticamente invocado pelo delegate quando uma operação ou atividade se completa. Por exemplo, um dos assíncrono design patterns usa AsyncCallback delegados para especificar o código que executa quando uma operação assíncrona for concluída. O padrão de design é usado o BeginWrite método, que utiliza um retorno de chamada para processar os resultados de uma operação de gravação assíncrona.

Os eventos são mecanismos semelhantes para retornos de chamada. Eventos permitem que o código especificado pelo usuário executar sob condições específicas, geralmente envolvendo uma alteração de estado ou o início de uma atividade ou o fim. Os eventos são mais fáceis de usar que retornos de chamada porque a sintaxe da linguagem e ferramentas fornecem uma experiência para reconhecer e manipulação de eventos de codificação de uniforme. Além disso, os eventos são manipulados pelo delegados chamados manipuladores de eventos que têm um padrão de assinatura bem definida. Para mais informações sobre eventos, veja Exemplo eventos.

As diretrizes a seguir ajudam a garantir que o seu projeto de biblioteca usa eventos e retornos de chamada de acordo com as práticas recomendadas.

Considere o uso de retornos de chamada para permitir que usuários fornecer o código personalizado para ser executado pelo Framework.

Considere o uso de eventos para permitir que os usuários personalizem o comportamento de uma estrutura sem a necessidade dos usuários a entender a orientação a objeto.

Preferir eventos retornos de chamada simples como eles são mais familiares para uma variedade maior de desenvolvedores e estão integrados com a conclusão da instrução Visual Studio.

Evite usar retornos de chamada em APIs de desempenho confidenciais.

Enquanto os eventos e retornos de chamada são mais fácil para muitos desenvolvedores entender e usar, eles são menos desejáveis do que Membros virtuais de desempenho e perspectiva de consumo de memória.

Compreenda que, ao chamar um delegado, você irá ser executem códigos arbitrários, que podem ter repercussões de segurança, correção e compatibilidade.

Eventos e retornos de chamada, permitir que um código arbitrário seja executado no contexto do common language runtime (CLR). Revisões de código e segurança devem examinar cuidadosamente esses pontos de extensibilidade para identificar vulnerabilidades de segurança.

Portions Copyright 2005 Microsoft Corporation. Todos os direitos reservados.

Portions Copyright Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre as diretrizes de design, consulte a "diretrizes de Design do Framework: Convenções, idiomas e padrões de reutilizável.Bibliotecas de rede" catálogo por Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Outros recursos

Criação de extensibilidade

Diretrizes de Design para desenvolvimento bibliotecas de classe