2016-05-31 6 views
1

Ich habe eine Anwendung erstellt, in der ich Daten aus Excel-Dokumenten lese. Ich mache die ganze zeitaufwendige Aufgabe, die Hintergrundarbeiter verwendet. Wie kann ich zeigen, wie viel Prozent der Arbeit in Arbeit gemacht wird?Aktualisiere Fortschrittsbalken Wert dynamisch nach Prozess pourcentrage C#

Ich weiß, dass es ein Report_Progress-Ereignis gibt, aber bedeutet es, dass ich fest codierten Wert angeben muss?

Gibt es eine Möglichkeit, wie ich erreichen kann, wie viel Prozent Arbeit von der Gesamtarbeit gemacht wird?

Ein Beispiel möchte ich wie beim Kopieren angeben, wie Fenster zeigt seinen Fortschrittsbalken und es erhalten Inkrement nach dem Prozentsatz der Daten kopiert.

Bitte helfen Sie mir

Dank

+1

Ja finden kann, müssen Sie es spezifizieren. Es kann nicht magisch herausfinden, wie weit du durch bist. Du musst einen [mcve] angeben, der deinen Versuch zeigt und wo du feststeckst, diese Frage ist zu weit gefasst wie sie ist. –

Antwort

0
BackgroundWorker backgroundWorker = new BackgroundWorker(); 

backgroundWorker.WorkerReportsProgress = true; 
backgroundWorker.WorkerSupportsCancellation = true; 
backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork); 
backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged); 

void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
{ 
    backgroundWorker.ReportProgress(yourprogress); 
} 

void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) 
{ 
      Messagebox.show(e.ProgressPercentage.toString()) 
      /// update you progressbar here with e.ProgressPercentage 
      progressBar.Value = e.ProgressPercentage; 

} 

Sie ein anderes Beispiel here

+0

SamP - Wenn Sie einen 'DataContext' aktualisieren, wäre es einfach, ihn so zu benutzen. Andernfalls, wenn Sie ein UI-Steuerelement direkt aktualisieren (was nicht empfohlen wird), müssen Sie den 'Dispatcher' verwenden, um es aufzurufen. –

Verwandte Themen