終了するためにスレッドでexit(0)
(from )への呼び出しを使用する .NET C# / C++ アプリがあります。<stdlib.h>
奇妙な点は、状況によっては、マネージド オブジェクトのファイナライザーが への呼び出しの直後に呼び出されexit
、他の状況ではまったく呼び出されないことです。
状況は非常に決定論的です。アプリは、その有効期間中に外部プラグイン dll (アンマネージ C で記述) からいくつかのメソッドを呼び出します。
dll A を使用すると、ファイナライザーが常に呼び出されます。
dll B を使用すると、ファイナライザーは呼び出されません。
exit(0) 呼び出しの場合のファイナライザーの予想される動作は何ですか? (予期され、文書化された動作がある場合)
外部 dll への呼び出しは、プロセスが終了する方法に影響を与える可能性のあるグローバル設定を変更できますか?