Traitement asynchrone d'un évènement
Bonjour,
J'ai un traitement dans mon application qui se résume dans le code en dessous
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| this.Cursor = Cursors.WaitCursor;
txt_log_Traitement.Text = DateTime.Now + " - Début vérification structures ...";
txt_log_Traitement.Text += "\n";
DataTable DT_Article = new DataTable();
DT_Article.Clear();
F_ARTICLE.VerifExistanceArticle(DT_Article, _do_piece, _typedoc, _base_origine, _base_cible);
txt_log_Traitement.Text += DateTime.Now + " - Nombre d'articles inexistants : " + DT_Article.Rows.Count.ToString();
txt_log_Traitement.Text += "\n";
DataTable DT_Famille = new DataTable();
DT_Famille.Clear();
F_FAMILLE.Get_FamilleInexistante(DT_Famille, _do_piece, _typedoc, _base_origine, _base_cible);
txt_log_Traitement.Text += DateTime.Now + " - Nombre de familles inexistantes : " + DT_Famille.Rows.Count.ToString();
txt_log_Traitement.Text += "\n";
txt_log_Traitement.Text += DateTime.Now + " - Fin vérification structures ...";
txt_log_Traitement.Text += "\n";
if (DT_Article.Rows.Count > 0 || DT_Famille.Rows.Count > 0)
{
Moulinette.GenerationDocument.Form1 f = new Form1(DT_Article, DT_Famille);
f.Show();
txt_log_Traitement.Text += DateTime.Now + " - Fin de traitement ...";
}
else
InsertionDocument(); |
Le problème est que la saisie dans le contrôle txt_log_Traitement ne se fait qu'après tous le traitement est terminé. Est ce qu'il existe une solution pour qu'a chaque fin de traitement le texte s'affiche et après il passe au traitement suivant, sans attendre la fin de tout le traitement pour avoir un affichage.
Peut être il faut utiliser les Thread, mais je n'ai jamais utilisé. J'ai essayé d'utiliser Thread.CurrentThread.Suspend(); et Thread.CurrentThread.Resume(); mais un message d'erreur s'affiche au niveau de Thread.CurrentThread.Suspend();
Merci par avance