2016-09-22 17 views
0

PID(プログラム自体から起動していない)がもう存在しなくなるまで待つ方法を教えてください。 私のプログラムは、外部プログラムからコマンドラインパラメータを介してPIDを取得し、それが終了して何かをするのを待ってください。外部のPIDが終了するのを待つ

私はそれを探しましたが、私が見つけたのは、プロセスがC#プログラム自体によって起動された例でした。それは..私はこのような何かを行っていたが、それは明らかに動作しません。..

それは達成することができますどのように
Process[] pname = Process.GetProcessById(7860); 
      if (pname.Length == 0) 
       Console.WriteLine("nothing"); 
      else 
       Console.WriteLine("run"); 

管理するのは簡単ですか!

+0

@RaymondChen:彼らは非常に同じコードで開始したプロセスを待っている参照問題になっているとまったく同じではない厥を。 – wonko79

+0

@ wonko79:重複したQ&Aに記載されていない部分は、不可能な部分です。ランダムなプロセスが興味のあるアプリケーションの標準I/Oハンドルを丁度適切なタイミングで見つけ、プロセスIDをパイプするために使用します。 – IInspectable

+0

[この回答](http://stackoverflow.com/a/6723758/902497)は、特定の複製です。 "プロセスを作成/接続し、終了するまでブロックするためにWaitForExit()を使用するか、アプリケーションの終了を待っている間にアプリケーションをブロックしたくない場合は、OnExitedイベントを使用します。この特定の質問は、「アタッチ」ケースを使用しています。 –

答えて

0

あなたは、書面により、容易にそれを行うことができます。

var p = Process.GetProcessById(7860); 
p.WaitForExit(); 
+0

あなたは同じ@ wonko79です、[提案した](http://stackoverflow.com/questions/39641494/c-sharp-wait-for-external-pid-to-exit/39641632#comment66586778_39641494)提案された複製質問に対処しないだろうか?同じ基準で回答を投稿するだけでは、質問にも対処できません。私は推論のその行を得ることはありません。もちろん、あなたが他のwonko79でない限り。 – IInspectable

関連する問題