Отслеживание кол-ва потоков

tryinfinity

Client
Регистрация
24.12.2016
Сообщения
141
Благодарностей
3
Баллы
18
Доброго времени суток!
Запускаю проект в несколько потоков, нужно после отработки всех потоков передернуть 3G модем для смены IP и запуска снова.
Как определить текущее кол-во потоков и если остается 1 и конец проекта, то запустить свой батник и запустить еще к примеру +5 потоков?
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Для C# экшена:
C#:
lock(SyncObject) {
    var tasksList = new List<string>(ZennoPoster.TasksList);

    var id = new Guid(project.TaskId);
    var match = Regex.Match(ZennoPoster.GetTaskInfo(id), @"(?<=<NumberOfTries>).*?(?=</NumberOfTries>)").Value;
    int NumberOfTries = Convert.ToInt32(match);
 
    if (NumberOfTries>1) {
        return "Ещё есть задания в работе";
    } else {
        return null; // Это последнее задание
    } 
}
Закидываете его в самый конец проекта. Если ещё есть задания в работе -> продолжаем работу, выходим по зеленой ветке. Если это последнее задание, тянем красную ветку к кубику запуска батника с перезагрузкой модема. После этого запустить ещё 5 потоков Вы можете с помощью того же батника или C# кода:
C#:
var id = new Guid(project.TaskId);
ZennoPoster.SetTries(id, Convert.ToInt32(project.Variables["tries"].Value)); // В переменной tries должно быть число - сколько заданий ещё запустить.
P.S. Максимальное кол-во потоков остается неизменным.
 

tryinfinity

Client
Регистрация
24.12.2016
Сообщения
141
Благодарностей
3
Баллы
18
Спасибо огромное)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)