Eventos e retornos de chamada
Um método de retorno de chamada é um método é invocado automaticamente por um delegado quando uma operação ou a atividade é concluída. Por exemplo, um dos padrões de design assíncrono usa AsyncCallback delega para especificar o código é executado quando uma operação assíncrona for concluída. Este padrão de design é usado no BeginWrite método utiliza um retorno de chamada para processar os resultados de uma operação assíncrono de gravar.
Os eventos são semelhantes às chamadas de retorno de mecanismos. Eventos permitir código especificado pelo usuário executar sob condições específicas, que geralmente envolve uma alterar de estado ou inicial de uma atividade ou participante. Eventos são mais fácil de usar do que retornos de chamada como sintaxe de linguagem e ferramentas fornecem uma experiência para reconhecer e manipulação de eventos de codificação de uniforme. Além disso, eventos são manipulados pelo delegados chamados manipuladores de eventos com um padrão de assinatura bem definido. Para mais informações sobre eventos, veja Exemplo eventos.
As diretrizes a seguir ajudam a garantir que 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 os usuários fornecer código personalizado para ser executado pelo estrutura.
Considere o uso de eventos para permitir que os usuários personalizar o comportamento de uma estrutura sem a necessidade dos usuários a entender a orientação a objetos.
Prefere eventos por retornos de chamada simples que são mais familiar para uma variedade maior de desenvolvedores e estão integrados à conclusão de demonstrativo do Visual Studio.
Evite usar retornos de chamada em APIs afetados pelo desempenho.
Embora os retornos de chamada e eventos são mais fáceis para vários desenvolvedores entender e usar, eles são menos desejáveis do que Membros virtual de uma perspectiva de consumo de memória e desempenho.
Entendemos 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.
Permitir a execução de código arbitrário seja executada no contexto de eventos e retornos de chamada a Common linguagem tempo de execução (CLR). Revisões de código e segurança devem examinar cuidadosamente esses pontos de extensibilidade para identificar vulnerabilidades de segurança.
Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.
Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.
Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.
Consulte também
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe