Partilhar via


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, as aplicações de thread único devem bloquear outras operações e aguardar a conclusão do comando antes de poderem executar as 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 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 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.

Na presente seção

Aplicações Windows com Callbacks Fornece um exemplo que demonstra como executar um comando assíncrono de forma segura, lidando corretamente com a interação com um formulário e o seu conteúdo a partir de um thread separado.

ASP.NET Aplicações Utilizando Wait Handles Fornece um exemplo que demonstra como executar múltiplos comandos simultâneos a partir de uma página ASP.NET, utilizando Wait Handles para gerir a operação na conclusão de todos os comandos.

Polling em Aplicações de Consola Fornece um exemplo que demonstra o uso do polling para aguardar a conclusão de uma execução de comando assíncrona a partir de uma aplicação de consola. Essa técnica também é válida em uma biblioteca de classes ou outro aplicativo sem uma interface de usuário.

Ver também