私は C# で書かれた .EXE プログラムを 1 つ使用しています (ある会社から購入しました)。
時々それを閉じる必要があります(手動ではなく外部から-必要に応じて代わりにProcess.Killを実行する小さなC#プログラムを使用します)
プログラムが何もしていない場合-簡単に強制終了できます。
しかし、それが何らかの「作業」を行っている場合(コードでは「タイマー」または「バックグラウンドワーカー」のいずれかだと思います)、閉じますが、「致命的なエラー」(および「OK」ボタン)という小さなポップアップが表示されます。「OK」をクリックすると、次のような大きなポップアップが表示されます。
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at
System.Windows.Forms.UnsafeNetiveMethods.DispatchMessageA(MSG&msg)
at
System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UNsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(in t32 dbComponentID, Int32 Reason, Int32 pv LoopData)
at
System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason ApplicationContext context)
at
System.Windows.Forms.Applicaion.ThreadContext.RunMessageLoop(Int32reason, ApplicationContext context_
at System.Windows.Forms.Application.Run(Form mainForm)
at cawf.xad70bf2c5a1a269d.xef498c90a0302180()
(CAWF は、私が殺したばかりのプロセスの名前です)。
ここで [OK] をクリックした後、もう一度強制終了する必要があります。
彼らのサポートは、Windows のエラーだと言っているので、彼らにできることは何もありません。
私の推測では、何かの途中で中断されたときに死にたくないのは、彼らのバックグラウンド ワーカーであるということです。
「良い方法」で(これらのエラーが発生しないように)それを殺す方法はありますか?