.NET 4.x Прервать несколько потоков - C#
Формулировка задачи:
Доброго времени суток уважаемые!
Подскажите пожалуйста, как правильно решить следующую задачу: выполнить некоторый метод в разных, не зависимых друг от друга потоках. Потом при необходимости, в какой-то момент времени эти потоки максимально быстро прервать/убить (и вынести их трупы куда-нибудь подальше ), потом, в какой-то момент времени запустить новые потоки... и т.д.
Интересует максимально простой пример, по возможности с комментариями. Спасибо.
Решение задачи: «.NET 4.x Прервать несколько потоков»
textual
Листинг программы
private void Form1_Load(object sender, EventArgs e) { Task[] tasks = { //Запускам поток, который нам будет бесконечно генерировать MessageBox'ы Task.Factory.StartNew(()=>{ // <-- поток который нужно полностью ликвидировать, по прошествии 5-и секунд, не зависимо от while (true) { MessageBox.Show("I am a Task!"); //Этот MessageBox будет появляться вечно Thread.Sleep(1000); } }) }; Task.WaitAll(tasks, 5000); //Вешаем программу на 5 секунд for (int i = 0; i < 3; i++) { Task.Factory.StartNew(() => { MessageBox.Show("I am a Task 2"); }); //Запускаем новый MessageBox в отдельном потоке } //При этом, изначально запущенный поток как существовал, так и продолжает существовать и работать } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д