Partilhar via


Operações assíncronas

Baixar ADO.NET

Algumas operações de banco de dados, como execuções de comando, podem demorar significativamente para serem concluídas. Nesses casos, os aplicativos de thread único devem bloquear outras operações e aguardar a conclusão do comando antes de poderem continuar suas próprias operações. Por outro lado, poder atribuir a operação demorada a um thread em segundo plano permite que o thread de primeiro plano permaneça ativo durante toda a operação. Em um aplicativo do Windows, por exemplo, delegar a operação demorada para um thread em segundo plano permite que o thread de interface do usuário permaneça responsivo enquanto a operação está em execução.

O .NET fornece vários projetos de design assíncrono padrão que os desenvolvedores podem usar para aproveitar os threads em segundo plano e liberar a interface do usuário ou os threads de alta prioridade para concluir outras operações em sua classe SqlCommand. Especificamente, os métodos BeginExecuteNonQuery, BeginExecuteReader e BeginExecuteXmlReader, emparelhados com os métodos EndExecuteNonQuery, EndExecuteReader e EndExecuteXmlReader, fornecem o suporte assíncrono.

Observação

A programação assíncrona é um recurso fundamental do .NET. Para obter mais informações sobre as diferentes técnicas assíncronas disponíveis para os desenvolvedores, confira Chamar métodos síncronos de forma assíncrona.

Embora o uso de técnicas assíncronas com recursos do ADO.NET não inclua nenhuma consideração especial, é importante estar ciente dos benefícios e das armadilhas da criação de aplicativos multithread. Os exemplos a seguir nesta seção apontam vários problemas importantes que os desenvolvedores precisarão levar em consideração ao criar aplicativos que incorporam a funcionalidade multithread.

Nesta seção

Aplicativos do Windows usando retornos de chamada
Fornece um exemplo que demonstra como executar um comando assíncrono com segurança, manipulando corretamente a interação com um formulário e seu conteúdo de um thread separado.

Aplicativos ASP.NET usando identificadores de espera
Fornece um exemplo que demonstra como executar vários comandos simultâneos de uma página do ASP.NET, usando os identificadores de espera para gerenciar a operação na conclusão de todos os comandos.

Sondagem em aplicativos de console
Fornece um exemplo que demonstra o uso de sondagem para aguardar a conclusão de uma execução de comando assíncrona de um aplicativo de console. Essa técnica também é válida em uma biblioteca de classes ou outro aplicativo sem uma interface do usuário.

Próximas etapas