none
プロセスID の有効期限について RRS feed

  • 質問

  • 宜しくお願いします

    現在、Processクラスを使用してアプリケーションを実行し、Process.GetProcessById にプロセスIDを指定して状態確認を行おうと思っています。

    Process.GetProcessByIdの例外「ArgumentException」の説明文に

    『ID の有効期限が切れている可能性があります。』という記載があります。

    「WindwosがプロセスIDをいつまで保持しているのか」に関する資料をご存知の方はいらっしゃいますでしょうか?

     

    不躾かとは思いますが、なにとぞ助言をお願い致します。

    2007年2月20日 11:53

回答

  •  あさば ありま さんからの引用

    「WindwosがプロセスIDをいつまで保持しているのか」に関する資料をご存知の方はいらっしゃいますでしょうか?  

    書籍であれば『インサイド Microsoft Windows 第4版』あたりを参照してください.

    そのプロセスハンドルの参照カウントが 0 になるときまでは有効です.
    例えば,プロセスが終了しても,外部プロセスがそのハンドルを保持していれば ID は有効です.

    その上で,.NET Framework の Process クラスが(アンマネージリソースである) OS のプロセスハンドルをどう扱っているかという話になります.

    2007年2月22日 21:29

すべての返信

  •  あさば ありま さんからの引用
    Process.GetProcessByIdの例外「ArgumentException」の説明文に

    『ID の有効期限が切れている可能性があります。』という記載があります。

    「WindwosがプロセスIDをいつまで保持しているのか」に関する資料をご存知の方はいらっしゃいますでしょうか?

    フツーにプロセスが終了するまでです。
    "有効期限" というのは、プロセスが終了しているからという意味だと思います。

    2007年2月20日 12:39
  •  じゃんぬねっと さんからの引用
     あさば ありま さんからの引用
    Process.GetProcessByIdの例外「ArgumentException」の説明文に

    『ID の有効期限が切れている可能性があります。』という記載があります。

    「WindwosがプロセスIDをいつまで保持しているのか」に関する資料をご存知の方はいらっしゃいますでしょうか?

    フツーにプロセスが終了するまでです。
    "有効期限" というのは、プロセスが終了しているからという意味だと思います。

    あら? 私は恐ろしい思い違いをしていますか?

    Processクラスでアプリを実行した場合、そのprocessを保持し続けないとプロセスIDは残らないということでしょうか?(もしくはプロセスが実行中)

    1. process.Start( notrepad , ~~.txt )

    2. process.Id を外部に保持

    3. processを終了

    4. process破棄

    5. 新しくProcess.GetProcessById( 2.のId )

    ArgumentException発生 #IDの有効期限が切れている#

     

    過去に触った時に「IDを指定して終了したプロセスの状態がとれた」と勘違いしていた様です

    「あ~ 少なくともシャットダウンするまではプロセスIDを保持しているっぽいのか~」

    と妄想していました

     

    時間を見てもう一度検証したいと思います

     

     

    2007年2月22日 12:21
  •  あさば ありま さんからの引用

    「WindwosがプロセスIDをいつまで保持しているのか」に関する資料をご存知の方はいらっしゃいますでしょうか?  

    書籍であれば『インサイド Microsoft Windows 第4版』あたりを参照してください.

    そのプロセスハンドルの参照カウントが 0 になるときまでは有効です.
    例えば,プロセスが終了しても,外部プロセスがそのハンドルを保持していれば ID は有効です.

    その上で,.NET Framework の Process クラスが(アンマネージリソースである) OS のプロセスハンドルをどう扱っているかという話になります.

    2007年2月22日 21:29
  • 回答ありがとうございます。

    ハンドルを保持していれば ID は有効なんですね

    是非とも『インサイド Microsoft Windows 第4版』を購入してみたいと思います

     

    ありがとうございました

     

    2007年2月23日 16:43