Я пытаюсь выполнить параллельную обработку, запуская консольное приложение program2
, которое выполняет всю работу.Он запускается program1
, который знает, сколько экземпляров нужно запустить.
В какой-то момент программа не может запустить больше экземпляров.Даже если вы увеличите instancesmount
, он запускается только до предела.В этом случае только 92. Если я установил ограничение в 100 или 200, он все еще только запускает 92 на сервере.
Я пишу программу на C #, и она работает в Windows Server 2008.
Вот код:
for (int instanceCount = 0; instanceCount < InstancesAmount; instanceCount++)
{
using (System.Diagnostics.Process myProcess = new System.Diagnostics.Process())
{
if (hiddeConsoleWindow)
{
myProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
}
myProcess.StartInfo.FileName = ExecutablePathProgram2;
System.Security.SecureString password = new System.Security.SecureString();
foreach (char c in ConfigurationSettingsManager.ProcessStartPassword.ToCharArray())
{
password.AppendChar(c);
}
myProcess.StartInfo.UserName = ConfigurationSettingsManager.ProcessStartUserName;
myProcess.StartInfo.Password = password;
myProcess.StartInfo.Domain = ConfigurationSettingsManager.ProcessStartDomain;
myProcess.StartInfo.UseShellExecute = false;
myProcess.Start();
}
}
Я искал, есть ли максимальное количество экземпляров для запуска, но он всегда говорит, что это столько, сколько поддерживает ОС.
Я также проверил, еслисуществует максимальное количество экземпляров на сеанс или на пользователя, но я не смог найти ничего, что описывает что-то подобное, или я пропустил это.