2013-08-01 1 views
-2

이봐, 난있어 나는 다음과 같은 코드를 사용 간단한 질문 :C#을하는 동안 (process.HasExited!)

while (!process.HasExited) 
{ 
mycode 
} 

이 어떻게 안전을? 사용자가 PC를 종료하거나 다시 시작하면 어떻게 될까요? 이 코드가 실패합니까? 그것이 평등 한 동안 이것을 폐쇄하는 과정에 있다면? (Process.hasExited)

고마워요!

+2

요구에 더 자세한 내용을 수 있습니다. 어떤 프로세스와 마찬가지로 'mycode'에 들어있는 것 –

+0

시작 부분에 사용할 수있는 [API] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa376877.aspx)가 있습니다. 'mycode'를 사용하면 Windows가 종료되는 것을 막을 수 있지만 항상 경주가 될 것입니다. 나는 당신이 자물쇠를 등록하기에 충분한 사이클을 얻을 것이라고 생각합니다. – Rup

+0

우리는 프로세스가'Process' 타입의 변수라고 추측 할 수 있습니다. – vidstige

답변

2

컴퓨터를 다시 시작하면 실행중인 모든 프로세스가 정리되어 응용 프로그램이 실행되지 않습니다.

얼마나 안전한지에 관해서는 프로그램의 종료를 평가할 때까지 프로그램의 약점이 있습니다.

process.WaitForExit() 또는 process.WaitForExit(10000) 더 나은 대안을

+0

항상 도움을 주셔서 감사합니다. 이것은 내가 그것을 사용할 수 있다는 것을 의미한다. 무엇이 코드가 종료되기 시작하면 코드가 잘못된 결정을 내릴 수 있다고 걱정했는지 ... –

+0

걱정하지 마세요. 컴퓨터가 재미있는 방식으로 작동하는 방법에 대한 기본 사항에 대한 책을 찾을 수 있습니다 :) 처음에는 지루할 것입니다. 그러나 명백하게 그것은 안에 가라 앉는다! – Sayse