- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
任何人都可以解释这可能如何发生吗?
我完全了解编程时要牢记线程安全性,并且正如您所看到的,我通过此处的InvokeRequired表单来满足UI更新的要求,一切工作正常,并且没有任何更改可以打破我所知道的状态,现在突然之间我正在对应用程序的其他部分进行编程(也许是在某个阶段添加到此方法?我只是不记得了),我很自然地收到此错误:
首先,如果InvokeRequired = true,则意味着执行BeginInvoke(),方法将被[排队]重新调用,并且InvokeRequired应该等于false吗?
我不应该收到此异常(exception),因为它应该得到满足?
希望听到一些多线程专家的意见:)
格雷厄姆
最佳答案
我怀疑InvokedRevoked可能对您撒谎。 WinForm控件推迟创建控件的基础Win32 HWND,直到方法调用实际需要它为止。如果尚未创建HWND,则InvokeRequired将返回false。
有关详细说明,请参见:"Mysterious Hang or The Great Deception of InvokeRequired"
如果您的后台线程在UI线程导致控件延迟创建其HWND之前查询InvokeRequired,则InvokeRequired将(错误地)告诉您的后台线程它不需要使用Invoke()将控件传递回UI线程。当后台线程访问控件时,BAM! “InvalidOperationException:跨线程操作无效!”
UI线程可以手动强制Control创建其HWND句柄,以便Control.InvokeRequired将知道UI线程是Control的所有者:
Control control = new Control();
IntPtr handle = control.Handle; // if you ask for HWND, it will be created
关于.net - 不可能(我讨厌使用这个词)交叉线程错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/527198/
我看到过关于此的类似帖子,但无法让 Netbeans 在正常工作时停止在我的代码中显示错误消息 "Unable to resolve identifier nullptr"。我已正确启用 C++11,
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有一个 cucumber 步骤,最近开始失败时 已添加到我的布局中。如果我拿 出来,我的测试都通过了。当我把它放回去时,使用 WebRat 提供的 click_link 方法
我一直致力于创建独立于 .Net 客户端运行的 WCF 服务。感谢 Google 和 StackOverflow,我已经能够创建简单的 xml 和 json 服务,而无需 Soap 包装器和一堆我不需
有人可以向我解释一下 python 在 ubuntu 9.04 中发生了什么吗? 我正在尝试启动 virtualenv,而 --no-site-packages 标志似乎对 ubuntu 没有任何作用
我是一名优秀的程序员,十分优秀!