A
Andreas Müller
After updating a customer to a newer version of our software, the ui-thread
locks after one or two hours of running the application. We already installed
this version on about 100 systems but this one is the first having this
trouble.
I already set the "Control.CheckForIllegalCrossThreadCalls" property to
"true" in the hope it was my failure, but i do not get any exception, the
thread just blocks.
To get a bit further I installed Visual Studio 2005 on one of the customers
machines and could get a callstack (added at the end of the post) out. But
now I am in Framework-classes and do not know how to find the problem. Is
there any tool which can tell me for what handle the framework-class is
waiting?
Windows XP SP3
..NET-Framework 2.0 Service Pack (+ german language pack)
Compiled with Visual Studio 2005
Appretiate any hints.
Regards
Andreas Müller
----- Callstack ----
[Deaktiviert oder wartend]
bool exitContext) + 0x23 Bytes
System.Windows.Forms.dll!System.Windows.Forms.Control.WaitForWaitHandle(System.Threading.WaitHandle
waitHandle = {System.Threading.ManualResetEvent}) + 0xa9 Bytes
System.Windows.Forms.dll!System.Windows.Forms.Control.MarshaledInvoke(System.Windows.Forms.Control
caller, System.Delegate method, object[] args, bool synchronous) + 0x37b
Bytes
System.Windows.Forms.dll!System.Windows.Forms.Control.Invoke(System.Delegate
method, object[] args) + 0x48 Bytes
System.Windows.Forms.dll!System.Windows.Forms.WindowsFormsSynchronizationContext.Send(System.Threading.SendOrPostCallback d, object state) + 0x61 Bytes
System.dll!Microsoft.Win32.SystemEvents.SystemEventInvokeInfo.Invoke(bool
checkFinalization = true, object[] args = {Dimensionen:[2]}) + 0x68 Bytes
System.dll!Microsoft.Win32.SystemEvents.RaiseEvent(bool checkFinalization
= true, object key = {object}, object[] args = {Dimensionen:[2]}) + 0x138
Bytes
System.dll!Microsoft.Win32.SystemEvents.OnUserPreferenceChanging(int msg,
System.IntPtr wParam, System.IntPtr lParam) + 0x6f Bytes
System.dll!Microsoft.Win32.SystemEvents.WindowProc(System.IntPtr hWnd =
264108, int msg = 8218, System.IntPtr wParam = 0, System.IntPtr lParam =
112709896) + 0x2a2 Bytes
[Ãœbergang von Systemeigen zu Verwaltet]
[Ãœbergang von Verwaltet zu Systemeigen]
System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(int dwComponentID, int reason = -1, int pvLoopData = 0) + 0x2f1 Bytes
System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(int
reason = -1, System.Windows.Forms.ApplicationContext context =
{System.Windows.Forms.ApplicationContext}) + 0x17d Bytes
System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(int
reason, System.Windows.Forms.ApplicationContext context) + 0x53 Bytes
System.Windows.Forms.dll!System.Windows.Forms.Application.Run(System.Windows.Forms.Form mainForm) + 0x2e Bytes
Aktenexplorer.exe!TrigonData.DE.Aktenexplorer.StartApplication.RunInstance(object formMain) Zeile 188 + 0x23 Bytes C#
Aktenexplorer.exe!TrigonData.DE.Aktenexplorer.StartApplication.Main()
Zeile 48 + 0x8 Bytes C#
locks after one or two hours of running the application. We already installed
this version on about 100 systems but this one is the first having this
trouble.
I already set the "Control.CheckForIllegalCrossThreadCalls" property to
"true" in the hope it was my failure, but i do not get any exception, the
thread just blocks.
To get a bit further I installed Visual Studio 2005 on one of the customers
machines and could get a callstack (added at the end of the post) out. But
now I am in Framework-classes and do not know how to find the problem. Is
there any tool which can tell me for what handle the framework-class is
waiting?
Windows XP SP3
..NET-Framework 2.0 Service Pack (+ german language pack)
Compiled with Visual Studio 2005
Appretiate any hints.
Regards
Andreas Müller
----- Callstack ----
[Deaktiviert oder wartend]
mscorlib.dll!System.Threading.WaitHandle.WaitOne(int millisecondsTimeout,mscorlib.dll!System.Threading.WaitHandle.WaitOne(long timeout, bool exitContext) + 0x2e Bytes
bool exitContext) + 0x23 Bytes
System.Windows.Forms.dll!System.Windows.Forms.Control.WaitForWaitHandle(System.Threading.WaitHandle
waitHandle = {System.Threading.ManualResetEvent}) + 0xa9 Bytes
System.Windows.Forms.dll!System.Windows.Forms.Control.MarshaledInvoke(System.Windows.Forms.Control
caller, System.Delegate method, object[] args, bool synchronous) + 0x37b
Bytes
System.Windows.Forms.dll!System.Windows.Forms.Control.Invoke(System.Delegate
method, object[] args) + 0x48 Bytes
System.Windows.Forms.dll!System.Windows.Forms.WindowsFormsSynchronizationContext.Send(System.Threading.SendOrPostCallback d, object state) + 0x61 Bytes
System.dll!Microsoft.Win32.SystemEvents.SystemEventInvokeInfo.Invoke(bool
checkFinalization = true, object[] args = {Dimensionen:[2]}) + 0x68 Bytes
System.dll!Microsoft.Win32.SystemEvents.RaiseEvent(bool checkFinalization
= true, object key = {object}, object[] args = {Dimensionen:[2]}) + 0x138
Bytes
System.dll!Microsoft.Win32.SystemEvents.OnUserPreferenceChanging(int msg,
System.IntPtr wParam, System.IntPtr lParam) + 0x6f Bytes
System.dll!Microsoft.Win32.SystemEvents.WindowProc(System.IntPtr hWnd =
264108, int msg = 8218, System.IntPtr wParam = 0, System.IntPtr lParam =
112709896) + 0x2a2 Bytes
[Ãœbergang von Systemeigen zu Verwaltet]
[Ãœbergang von Verwaltet zu Systemeigen]
System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(int dwComponentID, int reason = -1, int pvLoopData = 0) + 0x2f1 Bytes
System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(int
reason = -1, System.Windows.Forms.ApplicationContext context =
{System.Windows.Forms.ApplicationContext}) + 0x17d Bytes
System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(int
reason, System.Windows.Forms.ApplicationContext context) + 0x53 Bytes
System.Windows.Forms.dll!System.Windows.Forms.Application.Run(System.Windows.Forms.Form mainForm) + 0x2e Bytes
Aktenexplorer.exe!TrigonData.DE.Aktenexplorer.StartApplication.RunInstance(object formMain) Zeile 188 + 0x23 Bytes C#
Aktenexplorer.exe!TrigonData.DE.Aktenexplorer.StartApplication.Main()
Zeile 48 + 0x8 Bytes C#