A conexão com um banco de dados pode ser um processo demorado e em alguns casos este processo é realizado na inicialização de uma aplicação. Esta demora pode causar ao usuário a impressão de que a aplicação esteja "travada". Neste contexto, uma forma de evitar esta situação é utilizar uma thread para realizar este processo de conexão, permitindo que a aplicação trabalhe demais processos enquanto a conexão não é concluída, por exemplo, gerar e exibir formulários da aplicação. Esse é um dos exemplos em que as threads podem ser utilizadas.
O suporte a threads no contexto de aplicações (softwares) é um recurso fornecido pelo próprio Sistema Operacional. Uma thread é responsável por executar tarefas dentro de uma aplicação. O conceito de multithreading é aplicado quando estas tarefas são divididas em duas ou mais threads, buscando diminuir o tempo de processamento destas tarefas. O .NET oferece um componente que manipula threads dentro de uma aplicação, chamado BackgroundWorker. Este artigo introduz o conceito de threads e apresenta uma implementação para conexão com o banco de dados, utilizando uma thread, por meio do componente BackgroundWorker.,br>Autores: Everton Coimbra e Giuvane Conti
• O endereço da pilha;
• O contador de programa;
• Registrador de instruções
• Registradores de dados, endereços, flags;
• Endereços das threads filhas;
• Estado de execução.
A comunicação entre threads pode ser realizada por meio de variáveis globais do processo que as criou. Existem técnicas que podem ser utilizadas para realizar o sincronismo das mesmas, como monitores e semáforos, que possuem recursos capazes de indicar a ordem de execução dos processos e são utilizadas para evitar condições concorrência. A "