2

EventHooking が原因でアプリケーションが WPF アプリケーションをクラッシュさせるという問題が発生しています。以下は、私が試した簡単なコードで、それでもクラッシュを再現できました。これは、いくつかのノードが展開されているある種のカスタム ツリー ビューに対して実行する場合のみです。

{
...
_focusChangedHandler =  OnFocusChanged;
_focusChangedGCHandle = GCHandle.Alloc(_focusChangedHandler);
_focusChangedHookId = User32.SetWinEventHook(User32.EVENT_OBJECT_FOCUS,
    User32.EVENT_OBJECT_FOCUS, IntPtr.Zero, _focusChangedHandler,
    0,0,User32.WINEVENT_OUTOFCONTEXT);
...
}

private void OnFocusChanged(IntPtr hWinEventHook, uint eventType,
                            IntPtr hwnd,
                            int idObject, int idChild, uint dwEventThread,
                            uint dwmsEventTime)
{
}

また、顧客にこれを明示的に使用し、.new User32.WinEventDelegate(OnFocusChanged)を使用せずにテストしてもらいましたGCHandle.Alloc。これらすべてのシナリオの組み合わせと同様に。これで問題は解決しませんでした

なぜこれが起こっているのか、誰にも分かりますか?

*この WPF アプリケーションには問題があり、IAccessible呼び出しによって仮想化がキャンセルされるとメモリ/パフォーマンスの問題が発生しましたが、その後、それらの呼び出しを削除しました。

リクエストごとに編集

サードパーティについて私が持っている唯一の情報は、イベント ログからのものです。

Faulting application name: THIRDPARTY.exe, version: x.y.z, time stamp: 0x4fb0d031
Faulting module name: clr.dll, version: 4.0.30319.296, time stamp: 0x50484aa9
Exception code: 0xc00000fd
Fault offset: 0x00001ac6
Faulting process id: 0x6f50
Faulting application start time: 0x01cdf9a521428158
Faulting application path: C:\Program Files (x86)\THIRDPARTYEXEPATH
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: d8e42ff6-6598-11e2-9614-441ea14b96e0

私の調査によると、例外コードはスタックオーバーフローです

4

0 に答える 0