Zniszczenie anulowani wątków!

Zniszczenie anulowani wątków!
osamex
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 76
0

Witam!

Tworze w petli watki o tak:

Kopiuj
do
{
     thread1.Start();
     thread2.Start();

     ... jakies_instruklcje...
}
while
{
     jakiś_warunek
}

Oczywiście wcześniej zainicjowałem instancje klasy Thread:

Kopiuj
Thread thread1 =  new Thread(jakas_metoda_do_wykonania_w_watku);
Thread thread2 =  new Thread(jakas_metoda_do_wykonania_w_watku);

Problem polega na tym że jak warunek jest spełniony to powtarza operacje i wysypuje program bo obydwa watki dalej dzialaja, a chciałbym je jakoś zniszczyć po wykoniu czynnosci w ciele petli do{} nastepnie dopiero sprawdzany bylby warunek i w razie koniecznosci jeszcze raz "odpalone" watki i prtzeliczane.

Czy jest jakas mozliwość na reczne "zabicie" watków?!

SI
  • Rejestracja: dni
  • Ostatnio: dni
0

Źle się do tego zabierasz. Tworzenie nowych wątków jest mało wydajne. Zamiast tego lepiej raz odpal wątek, i dopiero w nim umieść swoją pętlę.

GR
  • Rejestracja: dni
  • Ostatnio: dni
0

do
{
thread1.Start();
thread2.Start();

 ... jakies_instruklcje...
 thread1.Join();
 thread2.Join();

}
while
{
jakiś_warunek

}

Każdy z joinow musi być w trayu w razie gdyby już zdążyło się wykonać,

Sarrus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2512
0

Co to jest za język? Nie znam takiej konstrukcji:

Kopiuj
do
{
...
}
while
{
....
}

Jakaś nowa wersja C#?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.