J'utilise des threads d'arrière-plan pour exécuter des processus de recherche intenses afin de permettre à l'interface utilisateur d'être entièrement accessible. Après la création de chaque bgw, je mets à jour un datagridview qui montre les différents threads et l'état actuel. Cependant, une fois qu'ils ont terminé, je n'ai aucun moyen ou au moins je ne connais pas un moyen de mettre à jour le statut sur le datagridview spécifique à chaque arrière-plan.état actuel du fond d'écran
Try
bgw.RunWorkerAsync()
queuelist.Enqueue(bgw)
If Not Thread.CurrentThread.Name = "Main Thread" Then
Dim record As String() = {jobNum, clientProj & jobNum, jobStartTime, bgw.IsBusy.ToString}
DataGridView1.Rows.Add(record)
End If
Catch ex As Exception
MessageBox.Show("An Error Occured:" & vbNewLine & ex.Message)
End Try
Détermine le datagridviewer une fois que les discussions commencent, mais une fois qu'il se termine, je ne sais pas comment mettre à jour ou de savoir quel thread a pris fin. J'ai essayé de les mettre dans une file d'attente mais je ne peux pas identifier un ouvrier spécifique quand je dequeue.
des idées
Merci pour la réponse et BTW, je dois afficher chaque processus en cours d'exécution sur l'interface utilisateur que l'état actuel de chaque emploi comme ceci: jobId jobname starttime status – vbNewbie