kontrolka BackdroudWorker jak stale monitorować stan bez używania pętli

0

Cześć. mam problem z niemożnością kontroli dokładnie z użyciem polecenia break (skoro nie jestem w pętli ). Może mi Ktoś pomoże w jaki sposób mógłbym stale kontrolować stan, by natychmiast przerwać pracę wątku czyli tej kontrolki BackgroundWorker

 
    private void backgroundWorkerOdczyt_DoWork(object sender, DoWorkEventArgs e)
        {
                 if (backgroundWorkerOdczyt.CancellationPending)
                {
                    e.Cancel = true;
                    //break; nie mogę tego użyć skoro nie jest w pętli np. for
                }
                else
                {
                   // tu jest jakiś użyteczny kod do wykonania...
}
}
1

return??

0

dłuższy blok kodu w DoWork() będzie tylko raz sprawdzony warunek a zawarty w pętli np. for jest sprawdzany przy każdym przebiegu-iteracji i wówczas za pomocą break jest możliwe wyjście a jeśli ja nie używam w DoWork() jakiejkolwiek pętli np. for to tylko jeden raz jest sprawdzany warunek. a przecież w DoWork() mogę zawrzeć kod składający się z wielu bloków, i któryś może zakończyć się fiaskiem i jednorazowe sprawdzenie na samym początku w takiej sytuacji mi nie wystarcza...

zapytuję czy jest jakaś konstruktywna podpowiedź jak uzyskać można funkcjonalność w sytuacji braku pętli jakiejkolwiek bez której nie jest możliwe użycie break:

        private void backgroundWorkerOdczyt_DoWork(object sender, DoWorkEventArgs e)
        {
             for (int i = 0; i < liczbaDanychDoOdczytania; i++)
            {
                if (backgroundWorkerOdczyt.CancellationPending)
                {
                     e.Cancel = true;
                    break;// to możet być jedynie wewnątrz pętli np. for !!!
                                   }
                else
                {

ja za chwilę powrócę do klasy Task i zadań które mają sens zwłaszcza dla dużych partii kodu i jest to podobnie jak w BackgroundWorker ukryte użycie wątków... ja tylko próbuję jeszcze pewne myśli uporządkować na tym etapie. Ronny

2

RETURN!!! - czego nie rozumiesz? A jak chcesz omijać część kodu to zmienna lokalna i if

1 użytkowników online, w tym zalogowanych: 0, gości: 1