重複の可能性:
アプリケーションがクラッシュしたときに致命的な例外の兆候はありません | NLog バージョン 2 | コンパクト フレームワーク 3.5
Nlog を使用して致命的な例外をログに記録する .Net Compact Framework 3.5 アプリケーションがあります。ほとんどの場合、ログは期待どおりに機能し、クラッシュする前に致命的な例外をログに記録します。ただし、エラー/例外の兆候を残さずにアプリケーションがクラッシュすることが時々観察されます。シナリオを詳しく説明しましょう -
アプリケーションはいくつかのスレッドを作成します。すべてのスレッド (通常、スレッドプール、APM、タイマー) には、呼び出しスタックの先頭に追加された try-catch ブロックがあります。したがって、クラッシュする前に致命的な例外をログに記録します。
メイン スレッドには、致命的な例外をコール スタックに記録するための「AppDomain.CurrentDomain.UnhandledException」があります。
アプリケーションはサード パーティが管理する dll をロードし、Wnce dll で PInvoke を実行します。しかし、サード パーティの dll がクラッシュした場合 (または、クラッシュする新しいスレッドが作成された場合) は、少なくともログに ThreadAbortExceptions が表示され、終了する前にアプリケーションのスレッドによってログに記録されるはずです。
この動作は散発的で、アプリケーションの起動後しばらくしてから発生することがあります。
コードには Application.DoEvents はありません。
このようなクラッシュの考えられる理由は何ですか? ログに例外がまったくないのはなぜですか?
どんな助けでも大歓迎です。