| 

.NET C# Java Javascript Exception

1
Diesmal hab ich mal ne etwas komlexere Frage:
Undzwar schreibe eich ein Programm, wo es unausweichlich ist, mit mehreren Threads/Backgroundworkern zu arbeiten.
Zurzeit erstelle ich dynamisch, für jede aufgabe einen Backgroundworker:
Dim withevents MyBGW As System.componentmodel.BackgroundWorker

MyBGW = New System.componentmodel.BackgroundWorker

Damit hab ich ja ne neue Instanz des Backgroundworkers...
Die BGWs machen im Prinzip alle das selbe, nur mit anderen Daten.
Das Funktioniert soweit auch alles...

Mein Problem ist jetzt, dass nur der letzte gestartete BGW in das
RunWorkerCompeted
Springt...
Wie bekomm ich es jetzt also hin, dass jeder der BGW darein Springt...?
News:
01.03.2011
DerPunk 1,2k 1 7
3 Antworten
2
Wenn ich das richtig verstanden habe brauchst du mehrere BackgroundWorker, zum Beispiel in einem Array
Public MyBGW() As System.ComponentModel.BackgroundWorker

Falls alle im gleichen RunWorkerCompleted-EventHandler landen sollen, kannst du nicht mit "withevents" arbeiten. Den kannst du aber folgendermaßen zuweisen:
AddHandler MyBGW(workerCount).DoWork, AddressOf MyBGW_RunWorkerCompleted

Somit landen alle hier:
Private Sub MyBGW_RunWorkerCompleted(ByVal sender As Object, ByVal e As ComponentModel.DoWorkEventArgs)
DoSomething()
End Sub
01.03.2011
Jürgen Luhr 7,1k 2 9
1
Danke für die Antwort.
Hab nun schon ne andere Lösung gefunden ^^
Ich lass die nichtmehr ins Completed springen, sondern hab am Ende ein
BGW.ReportProgress(100, 'Übergabewert')
Eingebaut.
Damit springen die halt automatisch darein, das läuft warscheinlich aufs Selbe hinaus...
01.03.2011
DerPunk 1,2k 1 7
DerPunk 1,2k 1 7
1
Hallo,
ich habe mir eine eigene Backgroundworker-Klasse erstellt und ein paar Properties (z.B. eine ID und einige Parameter) hinzugefügt.
Und, du musst natürlich daran denken, die folgenden Properties auf True zu setzen:
Dim bgw As New MyBackgroundWorker
bgw.WorkerSupportsCancellation = True
bgw.WorkerReportsProgress = True


Gruß, Tom
01.03.2011
Metal-Frog 946 1 7

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH