我有一个.net(目标机器上使用的4.0,4.5)C#应用程序是用户通过自动启动登录后的启动。
应用程序在某些系统上崩溃(主要是运行Win7的嵌入式PC)。 这仅在用户登录时发生。当应用程序崩溃并且您手动启动时,一切正常。
如果在重新启动/新登录后,该应用程序是手动启动,则没有问题。
如果我通过自动启动开始并等待一分钟
Application.Run(new Form_Hauptfenster(serviceMonitor));
甚至没有问题
我做了一个解决方法,抓住异常并再次启动应用程序。有时它会第二次出现问题,但随后会毫无问题地运行。
我注意到在用户登录/启动后(virusscanner / sql server /其他软件同时在较弱的硬件上启动)负载较重的系统上会发生这种情况。
不幸的是,我无法在我的开发机器上重现错误,但我有机会在应用程序崩溃的机器上进行调试。
当方法尝试更改主窗体中面板的颜色时,会发生崩溃。似乎主要从被破坏,theres没有有效的参考形式任何更长。
有谁知道问题出现的原因以及为什么这只是在启动/用户登录后? 我该如何解决这个问题呢?
非常感谢你的帮助,
米莎
.net错误就像:CLR20R3 / system.windows.forms
异常代码如下:
Exception: Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
at System.Windows.Forms.Control.MarshaledInvoke(Control caller,
Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
at USV_Control.Form_Hauptfenster.setStatusToGui(ServiceStatus status)
at USV_Control.Form_Hauptfenster.serviceMonitor_StatusChange
(Object sender, StatusChangeEventArgs e)
at USV_Control.ServiceMonitoring.OnStatusChange(StatusChangeEventArgs e)
at USV_Control.ServiceMonitoring.readCurrentStatus()
at USV_Control.ServiceMonitoring.theConnector_PinChanged(Object sender)
at USV_Control.ModuleConnector.OnPinChanged()
at USV_Control.ModuleConnector.OnPortPinChanged(Object sender, SerialPinChangedEventArgs args)
at System.IO.Ports.SerialPort.CatchPinChangedEvents(Object src, SerialPinChangedEventArgs e)
at System.IO.Ports.SerialStream.EventLoopRunner.CallPinEvents(Object state)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback,
Object state, Boolean ignoreSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()