Как добавить(+1)/уменьшить(-1) количество потоков в процессе выполнения?

санчил

Client
Регистрация
15.04.2016
Сообщения
319
Благодарностей
55
Баллы
28
Запускаю шаблон, вручную устанавливаю к примеру 5 потоков. Когда данные из списка закончатся по условию - мне надо уменьшить на 1 поток работу шаблона.

Логика: сначала надо узнать кол-во потоков текущее, затем уменьшаю на 1, и меняю кол-во потоков?
Выше попробовал разные методы, не совсем так получается как нужно.

Как уменьшать потоки на 1? в C# не силен.

string tempname = project.Variables["Project_name"].Value;// имя проекта
int tries = Int32.Parse(project.Variables["tmp2"].Value); // количество исполнений
int SetMaxThreads = Int32.Parse(project.Variables["tmp3"].Value); //кол-во потоков

if (tries<0){
ZennoPoster.SetMaxThreads(tempname, SetMaxThreads); //кол-во потоков
ZennoPoster.AddTries(tempname, tries);

}
 
  • Спасибо
Реакции: FB мастер

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
343
Благодарностей
207
Баллы
43
C#:
var zppath = Environment.ExpandEnvironmentVariables("%ZennoPosterCurrentPath%");
var p = System.Diagnostics.Process.Start(zppath+"\\TasksRunner.exe", "-o SetThreads 15 -names имя_проекта_в_ЗП");
p.WaitForExit();
Где 15 - это кол-во потоков.
Использую этот код. С цифрами (15 например) работает хорошо. Но как переменную вместо 15 вставить не понимаю. Пробовал так:
C#:
int tmp = Convert.ToInt32(project.Variables["tmp"].Value);
var zppath = Environment.ExpandEnvironmentVariables("%ZennoPosterCurrentPath%");
var p = System.Diagnostics.Process.Start(zppath+"\\TasksRunner.exe", "-o SetThreads tmp -names Centraldispatch");
p.WaitForExit();
бесполезно. Ошибку не выдаёт, но и не изменяет максимальное кол-во потоков.
 
  • Спасибо
Реакции: Sho

ezotonal

Client
Регистрация
13.01.2014
Сообщения
808
Благодарностей
227
Баллы
43
Использую этот код. С цифрами (15 например) работает хорошо. Но как переменную вместо 15 вставить не понимаю. Пробовал так:
C#:
int tmp = Convert.ToInt32(project.Variables["tmp"].Value);
var zppath = Environment.ExpandEnvironmentVariables("%ZennoPosterCurrentPath%");
var p = System.Diagnostics.Process.Start(zppath+"\\TasksRunner.exe", "-o SetThreads tmp -names Centraldispatch");
p.WaitForExit();
бесполезно. Ошибку не выдаёт, но и не изменяет максимальное кол-во потоков.
"-o SetThreads "+tmp+" -names Centraldispatch"
 
  • Спасибо
Реакции: Sho

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 943
Благодарностей
4 336
Баллы
113
  • Спасибо
Реакции: djaga

ezotonal

Client
Регистрация
13.01.2014
Сообщения
808
Благодарностей
227
Баллы
43

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 943
Благодарностей
4 336
Баллы
113
  • Спасибо
Реакции: djaga

djaga

Client
Регистрация
26.04.2020
Сообщения
505
Благодарностей
1 052
Баллы
93
Ты хочешь сказать, что исполнитель с таксой 1000 р в час не знает основ работы с кодом?
Может его взломали?))
Потому, как мне тоже очень странно, что человек не знает, что такое конкатенация и интерполяция строк.))
Или он все это время писал на кубиках и чужих сниппетах, и брал с людей по 1тыс/ч. :ce:
 
  • Спасибо
Реакции: avlba, Sho и Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 943
Благодарностей
4 336
Баллы
113
Может его взломали?))
Потому, как мне тоже очень странно, что человек не знает, что такое конкатенация и интерполяция строк.))
Или он все это время писал на кубиках и чужих сниппетах, и брал с людей по 1тыс/ч. :ce:
Взломали чтобы задать вопрос об изменении количества потоков?) Но он в топике светится, но не отвечает почему-то
 
  • Спасибо
Реакции: djaga

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
343
Благодарностей
207
Баллы
43
"-o SetThreads "+tmp+" -names Centraldispatch"
Пробовал и так конечно - не работало. Теперь понял что неправильно делал. Я вот так писал: "-o SetThreads" + tmp + "-names Centraldispatch". Прикол в том, что ошибку постер не выдаёт в этом случае.
Кстати, ещё одна интересная особенность, может кому поможет: имя шаблона нужно писать с большой буквы, даже если сам zp-файл с маленькой.
 
Последнее редактирование:

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
Подскажите как сделать такой-же запрос:
var id = Guid.Parse(project.TaskId);
ZennoPoster.AddTries(id, 1);
Но только величить +1 Максимум потоков
 

Greez

Client
Регистрация
05.02.2014
Сообщения
82
Благодарностей
29
Баллы
18
Вариант кода где остановка шаблона через ID в переменной, важно чтоб был пробел после -ids

C#:
var zppath = Environment.ExpandEnvironmentVariables("%ZennoPosterCurrentPath%");
var p = System.Diagnostics.Process.Start(zppath+"\\TasksRunner.exe", "-o StopTask -ids " + project.Variables["id"].Value);
p.WaitForExit();
 

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