Bonjour 
Visiblement je croix que l'exception que t'as c'est de type InavliadOperation avec le message : Opération inter-threads non valide si je me rappel bien.
L'explication de probléme est que tout simplement un thread (thread_ecriture) essaye d'accéder aux éléments d'un autre thread.
Essaye donc de faire ça :
1 2 3 4 5 6 7 8 9
| private void button2_Click(object sender, EventArgs e)
{
Thread thread_ecriture = new Thread(new ThreadStart(progressbarupload));
thread_ecriture.IsBackground = true;
thread_ecriture.Priority = ThreadPriority.Highest;
//region Démarrer l'écriture
thread_ecriture.Start();
} |
déclare ensuite un delegate :
Private Delegate void MAJProgressBarDelegate(Int index)
aprés une fonction qui va mettre a jour la valeur dans le progresse bar :
1 2 3 4 5 6 7 8 9 10 11
| Private void MAJPb(Int index)
If (progressBar1.InvokeRequired) {
LabelValeur.Invoke(New MAJProgressBarDelegate(MAJPb), index)
Return
}
progressBar1.Value = index
} |
et finalement l'appel depuis ton thread :
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
| private void progressbarupload()
{
try
{
while (this.progressBar1.Value < this.progressBar1.Maximum)
{
bytesSize = stream.Read(buffer, 0, buffer.Length);
reqStream.Write(buffer, 0, bytesSize);
longeur += 1;
MAJPb (longeur);
}
reqStream.Close();
stream.Close();
}
catch (Exception ex)
{
MessageBox.Show("ne veut pas\n" + ex.Message, "Erreur d'upload", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
} |
Bon j'espére que ça va résoudre ton problème
Partager