Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 2011
-
8 juil. 2004 à 16:22
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 2011
-
8 juil. 2004 à 17:45
Hello,
j'ai un petit souci...
j'ai fait une dll d'importation (je sais y a DTS pour ca...mais pour des raisons techniques c'est ma dll que je dois utiliser)
bref...je fais ma petite dll, qui va lire mon fichier texte, decomposer les colonnes, faire l'insert dans la table qui va bien, generer un fichier log et s'il le faut un fichier d'erreur...
bref tout va bien...
par contre comme je fais des importations de fichiers faisant environ 500000 lignes c long et le sablier c'est pas beau...
du coup je me suis dit..dans ma dll je gere le nombre d'erreur, le total de ligne inserer, le nombre de ligne a traiter alors autant les recuperer et les afficher sur la fenetre qui appel ma dll.
j'ai donc créé des propriete nb_erreur, nb_insert, etc....qui me retourne tout mes chiffre.
dans le programme utilisant la dll, j'ai mis un timer avec evenement tick qui va interroger mes proprietes
private void timer1_Tick(object sender, System.EventArgs e)
{
long erreur = 0;
long insert = 0;
long total = 0;
long traite = 0;
if(T_DCMDCLT!=null)
{
erreur = T_DCMDCLT.Nb_Erreur ;
if(erreur!=0)
MessageBox.Show("ERREEUR");
insert = T_DCMDCLT.Nb_Insertion ;
total = T_DCMDCLT.Nb_Total ;
traite = T_DCMDCLT.Nb_Traite ;
}
//On met a jour la progressbar
if(total!=0)
{
progressBar1.Value = Convert.ToInt16( (traite/total)*100 );
}
lbl_erreur.Text= "Erreur : "+erreur.ToString();
lbl_insert.Text= "Insert : "+insert.ToString();
lbl_total.Text = total.ToString();
lbl_traite.Text = traite.ToString();
}
avant ca mon programme lance l'importation grace à une fonction de ma dll
T_DCMDCLT.Lance_Importation();
mais la je ne rentre jamais dans le tick du timer...
une fois l'importation lancer...impossible de récuperer les valeurs de mes champs et donc de faire bouger ma progressbar....
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 8 juil. 2004 à 16:37
si tu utilises le Timer de System.Windows.Forms et que ta methode est bloquante il me semble qu'il est dans les choux tant que ta methode n'a pas fini de s'executer
donc il faut peut etre executer ta methode dans un thread séparé, de cette manière le gui et son timer ne seront pas freezés