Autor Beitrag
peterbe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Di 19.08.14 20:12 
hallo zusammen,

ich habe eine langes programm und möchte es jederzeit abbrechen können.
Ich habe folgende Abfrage.


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
if (backgroundWorker1.CancellationPending) //Abfrage,ob Abbrechen-Button betätigt wurde
{
    backgroundWorker1.ReportProgress(0);     
    break;
}


Nun möchte ich nicht jedes mal diese Abfage in meinem Dowork-thread haben, wegen unschön programmiert.
Kann ich die Abfrage irgendwie nach außen verlagern und durch einen Methoden-Aufruf immer wieder abfragen???

Mfg
peter

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 19.08.14 21:03 
Zitat:
Nun möchte ich nicht jedes mal diese Abfage in meinem Dowork-thread haben, wegen unschön programmiert.


Das machst du vermutlich einmal an einer Stelle in der DoWork Methode auch wenns ein 5-zeiler ist sehe ich nicht wieso das unschön sein sollte.
Was ist der Sinn von "ReportProgress(0);"?
peterbe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mi 20.08.14 18:29 
ReportProgress(0); setze den Ladebalken immer auf 0% wenn abbgebrochen wird.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 20.08.14 18:36 
Zitat:
ReportProgress(0); setze den Ladebalken immer auf 0% wenn abbgebrochen wird.


Jaja Logisch ;) ... aber die eigentliche Frage wahr der Sinn dahinter. Wenn ich nach 70% einen Thread abbreche hat der für mich 70% geschafft und ist bei 70% abgebrochen worden und eben nicht bei 0%. Ich hatte die ~Angst~ das du dir selbst irgendwie denn Abbruch so signalisieren wolltest anstatt einfach in DoWork beim abbrechen Cancel in den EventArgs zu setzen.