Przerywanie wątków

szukaj na forum nowy temat odpowiedz

Strona [ 1 ] z 1

kalapera ten post 09-03-2010 18:17





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?
Przejdź na górę strony
cytuj
kalapera ten post 09-03-2010 19:21





ok, już się dowiedziałem o Thread.BeginCriticalRegion() / EndCriticalRegion()
Przejdź na górę strony
cytuj
dam1en ten post 09-03-2010 21:55


Użytkownik
Status: Offline
Dołączył: 27-02-2008

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
Przejdź na górę strony
cytuj
kalapera ten post 09-03-2010 23:11





dokładnie tak robiłem wcześniej
ale już wiem jak to się powinno robić poprawnie i kod poprawiony
Przejdź na górę strony
cytuj
dam1en ten post 10-03-2010 06:46


Użytkownik
Status: Offline
Dołączył: 27-02-2008

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

Ostatnio zmodyfikowany: 30-04-2010 20:27 przez quetzalcoatl
Przejdź na górę strony
cytuj
szukaj na forum nowy temat odpowiedz

Strona [ 1 ] z 1

1 użytkownik(ów) przegląda ten temat (1 gości)
(żadnych zarejestrowanych użytkowników)

Copyright © 2000-2006 by Coyote Group 0.9.3-pre3
Czas generowania strony: 0.0203 sek. (zapytań SQL: 9)