Multithread => Traitement final
Bonjour @ tous,
J'ai une liste de traitement appelé en //.
Ça fonctionne bien, seulement, j'aimerais passer un booléen à true a la fin de tous ces traitements.
Comment faire pour être sur qu'ils soient tous terminés ?
(je me suis fait une classe afin d'avoir un code plus clair)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Sub Toto()
...
clsAsync.CtrlSetReadOnly(slueDevise, hasLignes) 'slueDevise.Properties.ReadOnly = hasLignes
clsAsync.CtrlSetEnabled(btnValider, True) 'btnValider.Enabled = True
clsAsync.CtrlSetEnabled(btnDevalider, False) 'btnDevalider.Enabled = False
clsAsync.CtrlSetChecked(ckbDocValide, obj.IsValidated) 'ckbDocValide.Checked = obj.IsValidated
Dim ret As IAsyncResult = clsAsync.CtrlSetReadOnly(btnSave, False) 'btnSave.Enabled = False
If (Me.InvokeRequired) Then
Me.BeginInvoke(New clsAsync.InvokeDelegate(AddressOf SetChanged), False) ' Pour être sur qu'il soit éxecuté après toutes les méthodes asynchrones.
Else
IsChanged = False
End If
End Sub
Private Sub SetChanged(o As Object)
IsChanged = CType(o, Boolean)
End Sub |
Car en fait, si un traitement antérieur prend du temps, il est fini après (et met donc ma variable à true).