Operações assíncronas
Algumas operações de banco de dados, como execuções de comando, podem levar um tempo significativo para serem concluídas. Nesse caso, 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. Em contraste, ser capaz de atribuir a operação de longa duração 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 de longa execução a um thread em segundo plano permite que o thread da interface do usuário permaneça responsivo enquanto a operação está em execução.
O .NET Framework fornece vários padrões de design assíncronos padrão que os desenvolvedores podem usar para aproveitar os threads em segundo plano e liberar a interface do usuário ou threads de alta prioridade para concluir outras operações. ADO.NET suporta esses mesmos padrões de design em sua SqlCommand classe. Especificamente, os BeginExecuteNonQuerymétodos , BeginExecuteReadere , emparelhados BeginExecuteXmlReader com os EndExecuteNonQuerymétodos , EndExecuteReadere , fornecem EndExecuteXmlReader o suporte assíncrono.
Nota
A programação assíncrona é um recurso central do .NET Framework e ADO.NET aproveita ao máximo os padrões de design padrão. Para obter mais informações sobre as diferentes técnicas assíncronas disponíveis para desenvolvedores, consulte Chamando métodos síncronos de forma assíncrona.
Embora o uso de técnicas assíncronas com recursos ADO.NET não adicione considerações especiais, é provável que mais desenvolvedores usem recursos assíncronos em ADO.NET do que em outras áreas do .NET Framework. É importante estar ciente dos benefícios e armadilhas da criação de aplicativos multithreaded. Os exemplos a seguir nesta seção apontam várias questões importantes que os desenvolvedores precisarão levar em conta ao criar aplicativos que incorporam funcionalidade multithreaded.
Nesta Secção
Aplicativos do Windows usando retornos de chamada
Fornece um exemplo demonstrando como executar um comando assíncrono com segurança, manipulando corretamente a interação com um formulário e seu conteúdo a partir de um thread separado.
ASP.NET aplicativos usando alças de espera
Fornece um exemplo demonstrando como executar vários comandos simultâneos a partir de uma página ASP.NET, usando alças de espera para gerenciar a operação na conclusão de todos os comandos.
Sondagem em aplicativos de console
Fornece um exemplo demonstrando 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 de usuário.