0
안녕하세요 모두 내가 파이프 파이프 서버 코드가 포함 된 Windows 응용 프로그램이 중지 될 때까지 서비스 응용 프로그램이 작동하는 서비스 기반 응용 프로그램을 만들었습니다.응용 프로그램을 계속 실행
안녕하세요 모두 내가 파이프 파이프 서버 코드가 포함 된 Windows 응용 프로그램이 중지 될 때까지 서비스 응용 프로그램이 작동하는 서비스 기반 응용 프로그램을 만들었습니다.응용 프로그램을 계속 실행
다음 코드를 시도해보십시오. 코드에서이 프로세스를 병합해야하며 이미 서비스에 대한 코드가 있어야합니다. "PipeServiceName.exe"를 프로세스의 이름이 무엇이든 바꾸십시오. 또한이 코드는 매 5 초마다 확인합니다. 5000 번호를 변경하여이를 변경할 수 있습니다.
"파이프"와 서비스가 서로 상호 작용하는 방식에 대해 더 많이 알지 못해도 워크 플로를 조합하기가 어렵습니다.
private readonly ManualResetEvent _shutdownEvent = new ManualResetEvent(false);
private Thread _thread;
public MyService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
_thread = new Thread(MonitorThread)
{
IsBackground = true
}
}
protected override void OnStop()
{
_shutdownEvent.Set();
if (!_thread.Join(5000))
{
_thread.Abort();
}
}
private void MonitorThread()
{
while (!_shutdownEvent.WaitOne(5000))
{
Process[] pname = Process.GetProcessesByName("PipeServiceName.exe");
if (pname.Count == 0)
{
// Process has stopped. ReLaunch
RelaunchProcess();
}
}
}
private void RelaunchProcess()
{
Process p = new Process();
p.StartInfo.FileName = "PipeServiceName.exe";
p.StartInfo.Arguments = ""; // Add Arguments if you need them
p.Start();
}
질문 제목에 태그를 포함하지 마십시오. 대신 태깅 시스템을 사용하십시오. –