Em um passado não muito distante , os computadores simplesmente simulou o fato de que eles foram multitarefa . Com dois núcleos e ou múltiplos processadores , os computadores já não simular multitarefa , eles realmente são multitarefa . Em muitos casos, o sistema operacional irá dividir as tarefas para executar em diferentes processadores , mas como um desenvolvedor usando o Visual Basic. NET não é possível explicitamente multi- thread do aplicativo . Instruções
1
Inicie o Visual Basic e crie um novo projeto Windows Forms.
2
Adicionar " System.Threading Imports " como a primeira linha no arquivo de código para o principal formulário.
3
Coloque um botão e cinco botões no formulário principal. Alterar o texto do botão para "Thread do Spawn " e rotular os botões de "Menor ", " Abaixo do Normal ", "Normal ", " Acima do Normal " e " Maior ". Nome dos botões de rádio " RB1 ", " RB2 ", " RB3 ", " rb4 " e " RB5 ", respectivamente
4
Adicione este código para ação clique do botão: .
Private Sub Button1_Click (sender System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
Dim t Como Tópico
t = New thread ( AddressOf Me.BackgroundProcess ) < br >
Se rb1.Checked Então
t.Priority = ThreadPriority.Lowest
ElseIf rb2.Checked Então
t.Priority = ThreadPriority.BelowNormal
ElseIf rb3.Checked Então
t.Priority = ThreadPriority.Normal
ElseIf rb4.Checked Então
t.Priority = ThreadPriority.AboveNormal
ElseIf rb5.Checked Então
t.Priority = ThreadPriority.Highest
End If
t.Start ()
End Sub
< br > 5
Outra sub rotina para esse arquivo como especificado aqui :
Private Sub BackgroundProcess ()
Dim f As New workerbee
f.Show () < br >
End Sub
Observe que isso cria uma outra forma chamada " workerbee " que não tenha sido criado ainda, então ignorar o erro , por enquanto.
6
Adicione uma outra forma de o projeto com o nome " workerbee " e colocar um rótulo no formulário chamado " label1 ". Este deve ser o nome padrão para o rótulo
7
Adicione as duas sub-rotinas que se seguem para arquivo de código do workerbee : .
Private Sub WorkerBee_Activated (sender As Object , ByVal e As Sistema . EventArgs ) Handles Me.Activated
'Faça a atividade do segmento aqui , ou ligue para alguma outra rotina (s)
Dim i as Integer = 1
do While Verdadeiros
Label1.Text = " iterações : " + i.ToString
i + = 1
Application.DoEvents ( )
loop
End Sub
Sub WorkerBee_FormClosing privada (sender as Object , ByVal e As System.Windows.Forms.FormClosingEventArgs ) Handles Me.FormClosing
' Abortar o fio quando o formulário é fechado para baixo Caso contrário, o aplicativo não vai perto
Thread.CurrentThread.Abort ()
End Sub
8
Execute o aplicativo . Selecione diferentes botões de rádio e clique no botão para gerar a rosca com a prioridade dada . Observe como threads com a mesma prioridade ficar quase o mesmo número distante nas iterações , mas um fio de alta prioridade aumenta rapidamente ao longo de um fio de baixa prioridade .