Entwurfsmuster GUI mit 2 Threads

Gast #2963245
Lesenswert?

Hallo,

wie macht man sowas am besten:

ich habe mehrere Backgroundworker, die verschiedene Aufgaben haben.
Sind die Aufgaben erledigt, terminieren die Backgroundworker von 
alleine.

Wenn der Backgroundworker beendet wurde, möchte ich ihn wieder neu 
aufrufen mit anderen Parametern. Manchmal will ich auch erst noch einen 
anderen BGW aufrufen und weitermachen wenn der fertig hat.

Also quasi eine Liste an Aufgaben abarbeiten.
Ich mache ungerne ein:

while(backgroundworker1.isbusy)
{
//do nothing
application.doevents();
}

um auf die Abarbeitungen der Backgroundworker zu warten.
Gibts da nicht ein besseres Entwurfsmuster? Eines bei dem die GUI 
lebendig bleibt ohne application.doevents()?

Viele Grüße!
#2963266
Lesenswert?

Messknecht schrieb:
> um auf die Abarbeitungen der Backgroundworker zu warten.
> Gibts da nicht ein besseres Entwurfsmuster? Eines bei dem die GUI
> lebendig bleibt ohne application.doevents()?
>
> Viele Grüße!

RunWorkerCompleted wird autom. ausgelöst... oder man könnte mit 
ProgressChanged entsprechendes "mitteilen"

http://msdn.microsoft.com/de-de/library/system.componentmodel.backgroundworker.runworkercompleted.aspx

http://msdn.microsoft.com/de-de/library/system.componentmodel.backgroundworker_events.aspx
Gast #2963362
Lesenswert?

Ja sorry C#.
Ist klar, die Events kenne ich, aber wie mache ich eine Liste von 
Aufgaben. Jede Aufgabe (BGW) wird vom GUI-Thread gestartet. Dann soll 
der GUI-Thread warten bis die Aufgabe erledigt ist, aber ohne zu 
blockieren und ohne while(){application.doevents}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren