BackgroundWorker, Abbruch mit Info?

Gast #3201662
Lesenswert?

Hi Leute,

ich habe einen Backgroundworker, der logischerweise was tut. Mein 
Problem ist nun, das ich unter Umständen abbrechen möchte und der 
WindowsForm eine Info darstellen möchte, warum abgebrochen wurde. Also 
etwa so:
1
void bgw_dowork (...)
2
{
3
  System::String^ sInfo = gcnew System::String( L"" );
4

5
   .. mach was...
6

7
  if ( Fehler1 )
8
  {
9
    sInfo = L"Fehler1";
10
    e->Cancel = true;
11
    return;
12
  }
13

14
   .. mach was...
15

16
  if ( Fehler2 )
17
  {
18
    sInfo = L"Fehler2";
19
    e->Cancel = true;
20
    return;
21
  }
22

23
   .. mach was...
24

25
  //-- erfolgreich beendet
26
  e->Result = ...
27
  e->Cancel = false;
28
}


Im EventHandler für das Complete-Event kann ich prüfen, ob erfolgreich 
beendet wurde. Wenn ja, dann nutze ich e->Result. Aber wenn nicht, wie 
bekomme ich die Info warum? Also wie kann ich das sInfo imBeispiel 
übergeben?
e->Result kommt nicht mit, wenn ich mit e->Cancel abbreche...

Danke schonmal
Gast #3201677
Lesenswert?

Ja. Das mache ich, weil ich ja den restlichen Code nicht mehr abarbeiten 
möchte. Also quasi so:
1
void bgw_dowork (...)
2

3
  ...
4

5
  if ( Fehler2 )
6
  {
7
    sInfo = L"Fehler2";
8
    e->Result = sInfo;
9
    e->Cancel = true;
10
    goto Ende;
11
  }
12

13
   .. mach was...
14

15
  //-- erfolgreich beendet
16
  e->Result = ...
17
  e->Cancel = false;
18

19
Ende:
20
  ;
21
}

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