C#アプリケーションで、正常に終了するか、誤動作を開始する可能性のある子プロセスを作成している場合、Process.Kill()を呼び出して終了します。ただし、プロセスが終了したかどうかを知りたいのですが。通常、終了したプロセスのエラーコードを取得できることはわかっていますが、通常の終了コードとは何で、プロセスが強制終了されたことを意味するものは何ですか?
質問する
9151 次
2 に答える
11
のProcess.Kill()のソースコードは、終了コードを-1に設定することを示しています(2012年9月現在)。Windowsオペレーティングシステムは実際には終了コードに32ビットの符号なしの値を使用しますが、C#の符号付き->符号なし->符号付きの変換は機能するはずです(ゼロまたはゼロ以外をチェックするだけでよいので、私のコード)。
一方、これは明らかに文書化されていない動作であるため(なぜ?)、Microsoftは明日それを変更し、終了コードを0に設定することでコードを壊す可能性があります。
于 2012-09-14T20:13:17.447 に答える
5
プロパティExitCodeを使用できますが、残念ながら、これはアプリのビルド方法によって異なります。したがって、アプリのソースコードがある場合は、正常に終了したときに正しく返されることを確認してください。これについて詳しく説明しているmsdnへのリンクを参照してください:http: //msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode.aspx
于 2010-03-16T17:32:16.980 に答える