J'ai besoin d'aide pour essayer de comprendre ce que je fais mal. J'essaie d'obtenir une collection d'éléments à partir du journal système sur un thread distinct pour empêcher le gel du formulaire pendant le processus de collecte. Je peux obtenir le travailleur d'arrière-plan pour les saisir tous, mais je vais avoir quelques problèmes les ajouter au ListBox
sur le formulaire.Travailler avec des threads C#
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
foreach (System.Diagnostics.EventLogEntry entry in eventLog1.Entries)
{
listBox1.Items.Add(
entry.EntryType.ToString() + " - " +
entry.TimeWritten + " - " +
entry.Source);
}
}
Il est évident que cela ne fonctionne pas comme prévu, car il y a 2 threads séparés, et vous ne pouvez pas changer d'objets sur différents threads, comme je l'ai découvert. Donc, si quelqu'un pouvait me guider dans la bonne direction, je serais reconnaissant.
Jetez un oeil sur cette réponse: http://stackoverflow.com/questions/1136399/how-to -update-textbox-sur-gui-de-un-autre-thread-en-C# – Klinger