Danke erstmal für Deine Hilfe.
Ich habe jetzt in der Completed Funktion des workers einen Funktionaufruf der einfach true zurück gibt.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| private void backWorkUDSmsgVariable_RunWorkerCompleted_1(object sender, RunWorkerCompletedEventArgs e) { ReturnBGWcancel(); }
private bool ReturnBGWcancel() { lbTestfallInfo.Items.Add("ReturnBGWcancel=true"); return true; } |
In meiner Tesfallfunktion habe ich zum Schluss eine Schleife die auf ein True wartet um abbzubrechen..
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| bool retBGWcancel = false;
do { retBGWcancel = ReturnBGWcancel(); } while (!retBGWcancel); lbTestfallInfo.Items.Add("Testfall Fertig!"); |
Wenn ich jetzt in meiner Form angeben diesen Testfall zweimal zu durchlaufen, kommt beim ersten Durchlauf:
Ausgabe:
ReturnBGWcancel=true
Testfall Fertig!
Dieser Testdurchlauf ist ok.
Zwischen den Testfällen wird noch eine Init() Funktion gestartet. Diese läuft durch.
Ausgabe:
Init()
Dann kommt der zweite Aufruf, dort kommt bei der Abfrage ob der worker busy ist ein true und es kommt eine Ausgabe:
Ausgabe:
bgw.busy!
Init() //nochmal zum Schluss.
Und am Ende steht jetzt nochmal:
ReturnBGWcancel=true
Den letzten Aufruf verstehe ich nicht..