【发布时间】:2013-04-09 00:28:17
【问题描述】:
我有一个全世界客户都在使用的程序。我检查了我的错误日志,似乎有很多异常(如下所列)引发了我无法真正弄清楚或追踪的异常。
我有一些调用,但它们都受 InvokeRequired 保护。 现在我在想,如果我应该使用 if (HandleCreated) 来代替。
我什至不确定异常是在何时何地引发的。
在启动时,在 InitializeComponent(); 之后,我有一些任务需要访问某些控件,例如 datagridview。但是,就像我说的,我尝试使用 InvokeRequired 来保护它们。我不确定这是否是导致问题的地方。
我可以执行哪些建议以便尝试跟踪此问题?
无论如何,这是我的例外:
System.InvalidOperationException: Invoke or BeginInvoke cannot be called on a
control until the window handle has been created.
at System.Windows.Forms.Control.WaitForWaitHandle(WaitHandle waitHandle)
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 System.Windows.Forms.Control.Invoke(Delegate method)
at ..()
at ..()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext,
ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
【问题讨论】:
标签: c# multithreading visual-studio exception exception-handling