Przerywanie wątków

0

Powiedzmy że mam wątek z pętlą:

while(true)
{
  UsunDane();
  PrzeindeksujDane();
}

czy Thread.Abort może przerwać wątek pomiędzy tymi dwoma funkcjami czego wynikiem mogłaby być na przykład niespójność danych? Albo czy wątek może być przerwany pośrodku jeszcze wywołanej funkcji? Jak to działa i jak zrobić żeby zawsze pętla doleciała do końca przed przerwaniem nie stosując jakichś dodatkowych zmiennych typu bool?

0

ok, już się dowiedziałem o Thread.BeginCriticalRegion() / EndCriticalRegion()

0

a nie lepiej w tym wątku zrobić tak?

bool Active = true;
while(Acticve){
  UsunDane();
  PrzeindeksujDane();
}

i jak będziesz chciał przerwać wątek to po prostu zmienisz zmienną Activa na false

0

dokładnie tak robiłem wcześniej
ale już wiem jak to się powinno robić poprawnie i kod poprawiony

0

jeśli to co podałem jest niepoprawnie to proszę, oświeć mnie

//q: jezeli bool active jest polem klasy etc, powinien miec znacznik volatile

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