CloseHandle を複数回呼び出すことの意味は何ですか?
ドキュメントには「すべきではない」と書かれていますが、ハンドルが外部から閉じられる可能性がある名前付きパイプの現実的なケースがあると思います (投稿の最後を参照)。
この場合、CloseHandle はデバッグ モードで例外をスローします。これは、開発者がこれを深刻だと考えていることを示唆していますが、ドキュメントは正確には明確ではありません。
(丁寧なお願い: 「やめてください!」という回答は避けてください :-)。もちろん、handke を 2 回以上閉じることは避けるべきです。もちろん、これを支援する優れたテクニックがあります: 閉じないとどうなるかだけに興味があります)。
ハンドルが OS によってすぐに再利用された場合、別の別のハンドルを閉じてしまう可能性があると示唆する人がいると聞いたことがあります。
これはありそうですか?
Windows はハンドル ID をどのように選択しますか?
ハンドル値が再利用される頻度について保証はありますか?
(たとえば、TCP はポート番号が特定の時間枠内で再利用できないことを保証します)。
ハンドル タイプ間でハンドルを閉じることはできますか? たとえば、パイプを閉じていると思っていたのに、イベントを閉じてしまうことはありますか?
ありがとう!
ジョン
(これに対するコンテキスト: クライアント/サーバー モデルで名前付きパイプを使用しています。たとえば、プロセスのクラッシュ/強制終了の場合など、ハンドルを閉じることを保証するのは非常に難しいようです。おそらく私は間違っています。 、しかし確かにMSDNのサンプルコードは、クライアントが共有ハンドルを閉じることを許可するように思われ、サーバーがそれを閉じようとすると、すでに閉じられています)。