Quando um programa de computador precisa executar uma sub-rotina de longo fôlego, é melhor tê-lo executar a sub-rotina como uma discussão de fundo. Um processo em segundo plano normalmente não têm a mesma prioridade como um processo de interface do usuário, para que ele irá executar mais lentamente. Sub-rotinas podem incluir a verificação de e baixar as atualizações, a transferência de arquivos de log ou executar cálculos longos.
Coisas que você precisa
- Visual básico
Inicie o Visual Basic e crie um novo projeto do tipo de projeto formulário do Windows.
Fazer a primeira linha do arquivo de código:
"Imports System.Threading"
E adicione:
"Dim t As Thread"
para a classe principal sob a forma.
Adicionar um botão ao formulário e altere seu nome para "btnStart." Altere a propriedade de texto do botão para "Iniciar o processo de fundo."
Adicione o seguinte código para o "btnStart" Clique em Ação:
Private Sub btnStart_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Alças btnStart.Click
t = New Thread (AddressOf Me.BackgroundProcess)
t.Priority = ThreadPriority.BelowNormal `Isto vai empurrar a sub-rotina ainda mais para o fundo
t.Start ()
End Sub
Essa rotina vai iniciar um processo em segundo plano e dar-lhe um mais baixo do que o normal de prioridade para que ele irá executar um pouco mais devagar e não interferir com os elementos da interface do usuário.
Adicionar a sub-rotina é para ser executado em segundo plano:
Private Sub BackgroundProcess ()
"Faça um processo longo aqui, não apenas um loop infinito
Do While Verdadeiro
laço
End Sub
Para rigor, adicione o seguinte código para o método formas de encerramento:
Private Sub Form1_FormClosing (ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Alças Me.FormClosing
t.Abort ()
End Sub
Sem essa rotina, o programa não sairá normalmente porque o segmento continua a ser executado.
Execute o programa e clique no único botão no formulário. Isto irá iniciar o processo que é executado em segundo plano.
dicas & avisos
- Certifique-se de manter tudo na sub-rotina a ser executado em segundo plano muito isolado. Sem o uso de técnicas de segmentação mais avançadas, não é possível saber o que está acontecendo em um determinado momento.