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

  • Автор темы Автор темы Enigma
  • Дата начала Дата начала
Запускаю шаблон, вручную устанавливаю к примеру 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 мастер
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
Использую этот код. С цифрами (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
  • Спасибо
Реакции: djaga
  • Спасибо
Реакции: djaga
Ты хочешь сказать, что исполнитель с таксой 1000 р в час не знает основ работы с кодом?
Может его взломали?))
Потому, как мне тоже очень странно, что человек не знает, что такое конкатенация и интерполяция строк.))
Или он все это время писал на кубиках и чужих сниппетах, и брал с людей по 1тыс/ч. :ce:
 
  • Спасибо
Реакции: avlba, Sho и Astraport
Может его взломали?))
Потому, как мне тоже очень странно, что человек не знает, что такое конкатенация и интерполяция строк.))
Или он все это время писал на кубиках и чужих сниппетах, и брал с людей по 1тыс/ч. :ce:
Взломали чтобы задать вопрос об изменении количества потоков?) Но он в топике светится, но не отвечает почему-то
 
  • Спасибо
Реакции: djaga
"-o SetThreads "+tmp+" -names Centraldispatch"
Пробовал и так конечно - не работало. Теперь понял что неправильно делал. Я вот так писал: "-o SetThreads" + tmp + "-names Centraldispatch". Прикол в том, что ошибку постер не выдаёт в этом случае.
Кстати, ещё одна интересная особенность, может кому поможет: имя шаблона нужно писать с большой буквы, даже если сам zp-файл с маленькой.
 
Последнее редактирование:
Подскажите как сделать такой-же запрос:
var id = Guid.Parse(project.TaskId);
ZennoPoster.AddTries(id, 1);
Но только величить +1 Максимум потоков
 
Вариант кода где остановка шаблона через 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();
 
в последних версиях:
[+] Добавлен метод ZennoPoster.SetMaxThreads
Хоть ктото написапл по теме. А так 3 страницы флуда.
ZennoPoster.SetMaxThreads - для регулировки потоков внутри шаблона
Например установить 1 поток для шаблона:
Развернуть Свернуть Копировать
var id = Guid.Parse(project.TaskId);
ZennoPoster.SetMaxThreads(id, 1);
 

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