Ключові моменти:
1. Коли в основному потоці створюється потік, IsBackground потоку за замовчуванням встановлюється як FALSE.
2. Коли основний потік виходить, потік з IsBackground=FALSE продовжує виконувати процес, доки виконання потоку не завершиться.
3. Лише потоки з IsBackground=TRUE вийдуть разом із виходом основного потоку.
4. При ініціалізації потоку та встановленні Thread.IsBackground=true це вказує, що потік є фоновим. Фоновий потік виходить разом із виходом основного потоку.
5. Принцип: Поки всі потоки переднього плану завершені, CLR викликає Abort() для кожного активного фонового потоку для повного завершення застосування.
Додано ще одне: Як вийти з програми: ось це. Близько(); Якщо ви просто закриєте поточне вікно, якщо це не основна форма, ви не зможете вийти з програми, а якщо є керований потік (не основний), вийти не можна чисто; Application.Exit(); Змусити всі повідомлення скасувати і вийти з усіх форм, але якщо є керований потік (не основний), він не може вийти чисто; Application.ExitThread(); примусово припинити всі повідомлення в потоку, що викликається, і також стикатися з проблемою, що інші потоки не можуть правильно вийти; System.Environment.Exit(0); Це найповніший спосіб виходу, незалежно від того, який потік змушений вийти, завершуючи програму дуже чисто. |