Ich verstehe, wie wir eine Variable (progresspercent) in die Funktion "progresschanged" überführen können.
%Vor%...
%Vor%...
%Vor%Aber ich möchte mehr Variablen an diese Funktion übergeben, zum Beispiel:
%Vor%...
%Vor%Tut mir leid, ich bin neu in c #, könnte mir jemand ein Beispiel geben.
Die ReportProgress-Methode der Hintergrund-Worker-Komponente ist überladen, um den Prozentsatz und einen Objekttyp-Statuswert zu übergeben:
%Vor%In Ihrer Verwendungsbedingung können Sie UserName und Score mit einem char-Trennzeichen verknüpfen und so die mehreren Werte innerhalb des userState-Parameters übergeben. und teilen Sie sie in das ProgressChanged () - Ereignis, wenn es ausgelöst wird. Sie können auch eine kleine eigenschaftsbasierte Klasse erstellen. Füllen Sie sie mit Werten und übergeben Sie sie mit dem typisierten Parameter userState-Objekt.
Ein Beispiel für die Verwendung der überladenen ReportProgress-Methode finden Sie im folgenden MSDN-Link:
Falls jemand nach einer umfassenden Antwort sucht:
Schnelle und einfache Vorgehensweise wäre:
%Vor%Typsicherer Ansatz wäre:
%Vor% Vielleicht möchten Sie Ihre benutzerdefinierten mehrgenerischen Typen von System.Tuple
ableiten.
um etwas einfacheres zu haben wie:
%Vor%Dank Eric 's Kommentar könntest du auch eine benutzerdefinierte Klasse oder Struktur übergeben ein Tupel
z.B.
%Vor%Erstellen Sie ein Datenübertragungsobjekt mit Eigenschaften für die Elemente, die Sie übergeben möchten, und geben Sie es dann als Benutzerstatus ein. In der OO-Welt lautet die Antwort fast immer, ein anderes Objekt zu erstellen.
Tags und Links c# events backgroundworker