So senden Sie weitere Argumente in C # backgroundworker progressed changed event

8

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.

    
user932493 07.09.2011, 10:52
quelle

3 Antworten

16

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:

Ссылка

    
VS1 07.11.2011 16:33
quelle
12

Falls jemand nach einer umfassenden Antwort sucht:

  1. Schnelle und einfache Vorgehensweise wäre:

    %Vor%
  2. Typsicherer Ansatz wäre:

    %Vor%
  3. Vielleicht möchten Sie Ihre benutzerdefinierten mehrgenerischen Typen von System.Tuple ableiten.

    %Vor%

    um etwas einfacheres zu haben wie:

    %Vor%
  4. Dank Eric 's Kommentar könntest du auch eine benutzerdefinierte Klasse oder Struktur übergeben ein Tupel

z.B.

%Vor%     
Bijan 26.02.2014 12:17
quelle
7

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.

    
Wayne Tanner 07.11.2011 16:57
quelle

Tags und Links