WPFアプリ終了時にAccess violationが発生する。


開発しているWPFアプリが、終了時にAccess Violationを投げて異常終了していることがわかりました。なんかGoogleIMEが関係しているようなのですが、本当のところはよく分かりません。
環境はWindows10,VisualStudio2019です。

起こったこと

WPFアプリを開発しているとき、Debugモードで実行中にアプリ側で実行終了すると「プログラムはコード(0xC0000005) Access Violation で終了しました。」と出力されることに気づいた。必ずではなく、出ないときもある。
うううー、デバッグモードでしか出ないし、どっちにしろ終了時なのだから実行に問題ない!! 放っておいても良いかな・・・と頭をよぎったのだが、Windowsのイベントログを見てみたらリリースモードの実行でもバリバリにエラー出ていました。

やったこと

とりあえずググったが・・・、英語も含めて情報が少ない!(皆さんお困りではないのか?)
見つけたのがこの記事。
https://qiita.com/MiyakoG/items/9898c41c12cf948eda39

「プロジェクトのプロパティ>デバッグ>ネイティブ コードのデバッグを有効にする(T)」にチェック

で実行したところ、GoogleIMEの名前がついたDLLが例外を投げているところまで分かった。が、それで行き止まり。

さらにやったこと

えーい、力技じゃ、ということで、アプリを分解してエラーが出ないところまで戻り、1個づつ組み立てながら発火点を探すという作業・・・。
それで、TextBoxを使うとエラーが出ると分かった。
TextBox?IME?でひらめいたのでした。

最後に分かったこと

原因はGoogle日本語入力(2.25.3700 現時点の最新)でした。IMEをMicrosoft IMEに切り替えたら直りました。おわり。実害はないけど前から出ていたのかなあ?不思議です。
なお、TextBoxのIME無効化スイッチは効果ありませんでした。

やっぱりなんかおかしい

その後いろいろ試しているのですが、他のPCで実行するとAccess Violationではなく、0x4000001fで終了したり、そもそもWindow+TextBoxだけのアプリでは落ちなかったりするので、まだ調査いるみたいです。
今のところGoogleIMEを外すと問題なくなるという点だけは確実ですが。