Programação assíncrono usando delegados
Representantes permitem que você telefonar um método síncrono de maneira assíncrono.Quando você chama um delegado sincronicamente, os Invoke método chama o método de destino diretamente no thread corrente. Se o BeginInvoke método é chamado, o common linguagem tempo de execução (CLR) coloca a solicitação e retorna imediatamente para o chamador. O método de destino é chamado de modo assíncrono em um thread do pool de threads.O segmento original, enviado a solicitação, está disponível para continuar executando em paralelo com o método de destino.Se um método de retorno de telefonar tiver sido especificado na telefonar para o BeginInvoke método, o método de retorno de telefonar é chamado quando o método de destino é encerrada. No método de retorno de chamada, o EndInvoke método obtém o valor retornado e os parâmetros de entrada/saída ou somente de saída. Se nenhum método de retorno de chamada for especificado ao chamar BeginInvoke, EndInvoke pode ser chamado a partir do thread que chamou BeginInvoke.
Observação importante: |
---|
Compiladores emitirá classes delegado com Invoke, BeginInvoke, e EndInvoke métodos usando a assinatura do delegado especificada pelo usuário. The BeginInvoke e EndInvoke métodos devem ser decorados sistema autônomo nativo. sistema autônomo esses métodos são marcados sistema autônomo nativo, o CLR fornece automaticamente a implementação no time de carregamento de classe.O carregador garante que eles não são substituídos. |
Nesta seção
Chamando métodos síncrono assincronamente
Aborda o uso de delegados para fazer chamadas assíncrono para métodos comuns e fornece exemplos de código simples que mostrem as quatro maneiras para aguardar uma telefonar assíncrono retornar.Representantes assíncrono Programming exemplo
Demonstra o uso de delegados para fazer chamadas assíncrono, um exemplo de código mais complexo que factorizes números.
Seções relacionadas
- Padrões de design de programação assíncrono
Descreve a programação assíncrono com o .NET estrutura.