프로세스를 시작하는 프로그램을 구현하려고합니다. 그러나 동시에 최대 2 개의 프로세스가 메모리에서 실행될 수 있습니다. 프로세스 수가 2보다 크면 라이센스 정책으로 인해 예외가 발생합니다. 그래서 기본적으로 우리는 2 개의 프로세스가 끝날 때까지 기다렸다가 끝날 때까지 또 다른 2 개의 프로세스를 시작해야합니다. 나는 2 개 이상의 프로세스 후 확인이 스레드 수면가 메모리에 있는지 확인하기 위해 시도했지만 잘C# 프로세스 관리
while (Process.GetProcesses().Where(x => x.ProcessName == "myProcessName").Count() >= 2)
{
Thread.Sleep(100);
}
//Start next process
어떤 아이디어를 작동하지 않는 것? 고마워요!
using System;
using System.Diagnostics;
namespace ConsoleApplication1 {
class Program {
static void StartProcess(string Path) {
Process Process = Process.Start(Path);
Process.EnableRaisingEvents = true;
Process.Exited += (sender, e) => {
StartProcess(Path);
};
}
static void Main(string[] args) {
for (int i = 0; i < 2; i++) {
StartProcess("notepad");
}
Console.ReadLine();
}
}
}
어떤 예외? 자신의 프로세스 인스턴스화를 제어 하시겠습니까? – Yahya
프로세스가 존재할 때까지 기다리는 데 문제가 있으면 Process.WaitforExit() 메서드를 사용하십시오. http://msdn.microsoft.com/en-us/library/fb4aw7b8.aspx – Madushan
@Yahya 나는 단지 2 개의 프로세스 만 기억하고 싶다. 나는 그것들을 인스턴스화하지 않는다. 단지 두 개만의 장소가 있기 때문에 기다리게하고 싶다.))) – Micha