gpt4 book ai didi

c# - BeginInvoke 中的 InvalidOperationException

转载 作者:行者123 更新时间:2023-11-30 22:22:17 25 4
gpt4 key购买 nike

我收到一个 InvalidOperationException 消息 Cross-thread operation not valid..

_waitForm 是在主窗体的构造函数中创建的。屏幕截图中的方法是从另一个线程调用的。我虽然这就是 BeginInvoke 解决的问题。我知道我正在从创建的线程之外的另一个线程访问表单。关于如何解决这个问题的任何想法?

enter image description here

这是堆栈跟踪:

   at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.get_ContainsFocus()
at System.Windows.Forms.Control.SelectNextIfFocused()
at System.Windows.Forms.Control.SetVisibleCore(Boolean value)
at System.Windows.Forms.Form.SetVisibleCore(Boolean value)
at System.Windows.Forms.Control.Hide()
at YYYYYY.Boundary.ZzzzzForm.<HideWaitForm>b__c() in R:\Projects\XXXX\trunk\src\YYYYYY\Boundary\ZzzzzForm.cs:line 514
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()

抱歉截屏,我想展示全貌

最佳答案

您是否尝试过通过以下方式对 _waitForm 进行操作:

_waitForm.Invoke(new MethodInvoker(_waitForm.Hide));

或者,如果上述方法不起作用:

_waitForm.Invoke(new MethodInvoker(() => 
{
_waitForm.Reset();
_waitForm.Hide();
}));

关于c# - BeginInvoke 中的 InvalidOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13918821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com