Закрытие всех безымянных потоков - C#
Формулировка задачи:
Делаю небольшую игру в Unity3d, возникла необходимость создавать потоки без названий для каждого добавляемого объекта.
Дальше в потоке выполняется бесконечный цикл
Задача - при завершение игры (не самой программы, а выхода пользователя в меню) закрыть все существующие потоки.
Как это можно реализовать?
Некую переменную меняем на True при выходе из игры
static public void AddVideo(string name, short type, short genre, short place, short adv) { //тут много кода неотносящегося к теме вопроса ////////////// new Thread(delegate () { ThreadCreation(VideoBase.id.Count); }).Start(); }
static public void ThreadCreation(int id) { int last_time = 0; //в эту переменную будем загонять текущее значение нашего таймера int time = 100; //так как значение last_time может быть равно от 0 до 60 инициализироуем переменную числом 100 //поток существует до конца игры while (true){ last_time = MainTimer.GameTime.sec; //значение общего игрового таймера Thread.Sleep(50); //небольшая задержка if (time != last_time) { VideoCalculation(id); //метод расчетов time = last_time; //возвращаем переменной текущее значение таймера, пока общий таймер не изменится, новый расчет производится не будет } }
Верен ли такой подход?
while (true){ last_time = MainTimer.GameTime.sec; //значение общего игрового таймера Thread.Sleep(50); //небольшая задержка if (time != last_time) { VideoCalculation(id); //метод расчетов time = last_time; //возвращаем переменной текущее значение таймера, пока общий таймер не изменится, новый расчет производится не будет } ///////////// if(Значение некоторой переменной = true) { break; return 0; } ////////////////// }
Решение задачи: «Закрытие всех безымянных потоков»
textual
Листинг программы
List<Thread> threads = new List<Thread>();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д