Comment signaler une chaîne (comme “recherche dans un fichier…”, “Sélection trouvée…”) Dans mon fichier Windows.form à partir d’un outil backgroundWorker ainsi que d’un pourcentage. De plus, j’ai une grande classe qui contient la méthode que je veux exécuter dans backgroundWorker_Work. Je peux l’appeler par Class_method (); mais je suis alors incapable de signaler mon pourcentage de réalisation ou quoi que ce soit de la classe appelée, uniquement de la méthode backgroundWorker_Work.
Merci!
Je suppose que WCF a également la méthode
public void ReportProgress(int percentProgress, Object userState);
Il suffit donc d’utiliser userState pour signaler la chaîne.
private void worker_DoWork(object sender, DoWorkEventArgs e) { //report some progress e.ReportProgress(0,"Initiating countdown"); // initate the countdown. }
Et vous obtiendrez cette chaîne “Déclenchement du compte à rebours” dans l’événement ProgressChanged
private void worker_ProgressChanged(object sender,ProgressChangedEventArgs e) { statusLabel.Text = e.UserState as Ssortingng; }
Vous pouvez utiliser le paramètre userState de la méthode ReportProgress pour signaler ces chaînes.
Voici un exemple de MSDN:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { // This method will run on a thread other than the UI thread. // Be sure not to manipulate any Windows Forms controls created // on the UI thread from this method. backgroundWorker.ReportProgress(0, "Working..."); Decimal lastlast = 0; Decimal last = 1; Decimal current; if (requestedCount >= 1) { AppendNumber(0); } if (requestedCount >= 2) { AppendNumber(1); } for (int i = 2; i < requestedCount; ++i) { // Calculate the number. checked { current = lastlast + last; } // Introduce some delay to simulate a more complicated calculation. System.Threading.Thread.Sleep(100); AppendNumber(current); backgroundWorker.ReportProgress((100 * i) / requestedCount, "Working..."); // Get ready for the next iteration. lastlast = last; last = current; } backgroundWorker.ReportProgress(100, "Complete!"); }
Lire le multi-threading simple dans Windows Forms .
C’est une série en 3 parties.
utiliser un délégué.