11
votes

C # Backgroundworker rapporte la chaîne?

Comment puis-je signaler une chaîne (comme "à la recherche de fichiers".. De plus, j'ai une grande classe qui contient la méthode que je souhaite exécuter dans le backworker_work. Je peux l'appeler par classe_method (); Mais je suis alors incapable de signaler mon pourcentage effectué ou quoi que ce soit de la classe appelée, uniquement à partir de la méthode Backworker_Work.

merci!


0 commentaires

4 Réponses :


0
votes

Utilisez un délégué.


0 commentaires

4
votes

Lire Simple Multi-threading sous Windows Formulaires .

C'est une série en 3 parties.


0 commentaires

9
votes

Vous pouvez utiliser le paramètre USERTATE de ReportProgress code> pour signaler ces chaînes.

Voici un exemple de MSDN: P>

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!");
}


0 commentaires

25
votes

Je suppose que la WCF a également la méthode xxx pré>

, utilisez simplement l'USSTET pour signaler la chaîne. P>

private void worker_ProgressChanged(object sender,ProgressChangedEventArgs e) 
{
  statusLabel.Text = e.UserState as String;
}


0 commentaires