У меня есть два приложения .NET. Один из них представляет собой автономное консольное приложение, которое запускает несколько экземпляров второго приложения, передавая каждый другой массив аргументов. Я запускаю второе приложение, используя Process.Start.Запуск нескольких экземпляров одного и того же приложения с использованием многопоточности .NET.
Мне нужно убедиться, что каждый экземпляр приложения имеет собственное пространство в памяти, и я думаю о создании нового потока для запуска каждого приложения. Я довольно новичок в многопоточности и задавался вопросом, является ли это хорошей практикой? Есть ли лучший способ сделать это? Может ли несколько экземпляров одного и того же приложения работать бок о бок без каких-либо проблем? Буду признателен за любую помощь. благодаря!
Ниже приведен неполный код от запускающего приложения: arr - массив, содержащий несколько строковых значений. Приведенный ниже код принимает эти значения с шагом, равным iCount, помещает их в массив темпа - arrTemp и передает его на вторую программу:
i = 0
While (i <= arr.Count - 1)
j = 0
ReDim arrTemp(iCount-1)
While j < iCount And j < arr.Count - 1
arrTemp(j) = arr(i).ToString()
j += 1
i += 1
End While
'pass an array to the process as an argument
startInfo.Arguments = String.Join(" ", arrTemp)
Dim p As Process = Process.Start(startInfo)
p.WaitForExit()
'clear the array
ClearArray(arrTemp)
i = j + 1
End While
Я хочу, чтобы добавить многопоточность в код выше, чтобы включить приложение к икре несколько экземпляров второго приложения. Мне также нужна помощь с этим
все они имеют собственное пространство в памяти, так как они работают в разных процессах. – Bond
Предполагая, что второе приложение правильно использует любые общие ресурсы, просто избавьтесь от 'p.WaitForExit()', и у вас будет несколько экземпляров, запущенных ... –
Idle Mind, чтобы уточнить, Process.Start выполнит работу и мне не нужно использовать многопоточность? Существуют ли преимущества создания отдельных процессов с потоками? – ElenaDBA