Olá pessoal,
gostava de uma ajuda de modo a conseguir sincronizar threads.
O problema é o seguinte:
Tenho um Form que inicia várias threads em paralelo no método Load, o que pretendo é que após o inicio das thread filho a thread pai pare a execução e só volte a ser executada quando as thread filho terminarem.
Já exprimentei várias soluções mas nenhuma funcionou, abaixo coloco
um excerto do código.
Obrigado.
Duarte.
Private Sub frm_Reservas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If (TableComiss Is Nothing) Then
AddHandler clsFunction.FinishedComiss, AddressOf FinishedComissEventHandler
Thread1.Start()
End If
If (TableCli Is Nothing) Then
AddHandler clsFunction.FinishedCli, AddressOf FinishedCliEventHandler
Thread2.Start()
End If
end sub
Sub
FinishedComissEventHandler(ByVal dtComiss As DataTable)
Invoke(
New ChangeTextControlDelegate2(AddressOf preencheComboBoxComiss), New Object() {Thread1.Name, ComboBoxNComiss, Label45})
End Sub
Sub FinishedCliEventHandler (ByVal dtCliente As DataTable)
Invoke(
New ChangeTextControlDelegate(AddressOf preencheComboBoxCli), New Object() {Thread2.Name, ComboBoxNomeCli, ""})
End Sub
Sub preencheComboBoxCli(ByVal aThreadName As String, ByVal aComboBox As ComboBox, ByVal newText As String)
With aComboBox
.DisplayMember = "Nome"
.ValueMember = "Nome"
.DataSource = TableCli.DefaultView
.SelectedIndex = -1
End With
End sub