Opóźnianie pętli, zabezpieczenie przed przekroczeniem zakresu tabeli

0

Witam,
Piszę program, w którym chciałbym zastosować zabezpieczenie przed przekroczeniem indeksu tabeli. Jest to program, który liczy pierwiastki, a metoda do obliczania nie zawsze jest zbieżna...na sztywno ustaliłem sobie np 3 tys kroków. I teraz jeśli jest zbieżna to program się nie posypie...jeśli nie jest zbieżna to mam index out of range. Mogę tutaj zastosować jakiś komunikat dla użytkownika, że proces nie jest zbieżny a tym samym zabezpieczyć program przed wywaleniem się (na skutek wystąpienia zdarzenia out of range)?

Drugie pytanie:
Czy istnieje jakaś metoda wstawiania timera do pętli? Tzn chcę aby wykonywała się ona co określony czas a nie z prędkością jaką oferuje sprzęt komputerowy...
Z góry dzięki za pomoc

0
  1. Sprawdzaj licznik i jeżeli jest równy maximum to wyświetl komunikat i zakończ pętlę breakem
  2. Tak możesz wstrzymać działanie wątku za pomocą Thread.Sleep()
1

sprawdzaj zbieżność.
sprawdzaj, czy indeks nie przekracza rozmiaru tablicy.
wyjątki można łapać, ale jeśli sprawdzisz zbieżność, to łapać nie będziesz musiał. jeśli sprawdzisz indeks przed odwołaniem się za jego pośrednictwem do komórki tablicy, to również nie będzie wyjątku.
a tak naprawdę powinieneś użyć wszystkie trzy "zabezpieczenia".

0

Zabezpieczyłem to tak jak powiedział kolega pod moim postem. Założyłem przerwanie pętli gdy osiągnę rozmiar o 1 mniejszy niż założyłem. Działa bez problemu a przy okazji wyrzucam komunikat, że przekroczono maksymalną liczbę iteracji, która sobie ustawiłem. Jeszcze dwa pytania...czy tylko uśpienie procesu wchodzi w grę? czy da się jeszcze inaczej spowolnić działanie pętli o np 3 sec. Wiem, że w LAbView to jest (używam) ale w c# jestem nowy i powoli wszystko zaczyna ogarniać:). W labView jest funkcja wait until...(przykładowa). Tutaj w visualu nic nie spotkałem takiego...na bank jest a nie umiem znaleźć, obsłużyć. Drugim pytaniem jest skalowanie okien. Czy jeśli ja napiszę program pod moją rozdziałką w PC to będzie on jakoś skalowany na kompie o mniejszej liczbie pixeli?

0

W labView jest funkcja wait until...(przykładowa)

A wait until jak działa? Ja nie znam LabView

0

Wait until.. to taka funkcja która po zaaplikowaniu jej do pętli odmierza czas wykonania kolejnej pętli. Podajesz np 100 sec, i pętla for czy też while wykonuje się daną liczbę iteracji, gdzie czas między iteracjami to właśnie te 100 sec.

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