我遇到了无法解决的“调用”问题。我会尽量详细地描述我的描述,但我是新手,所以请耐心等待,如果您需要更多信息,请告诉我。
我有一个后台线程正在运行,当提示时将禁用在主线程上创建的表单上的一堆复选框。为了做到这一点,我需要使用一个invoke
和一个委托安全地跨线程,但我必须做错了。底线,当我在调试器中检查这个时,我发现它在代码的 ACTION 部分运行了两次 if InvokeRequired
。我可以通过用 括住 ACTION 来解决这个问题else
,虽然它不会运行else
两次,但它仍然会尝试再次执行该方法。
delegate void ManualCurtainShuttoffHandler();
public void ManualCurtainShutoff()
{
if (InvokeRequired)
{
Invoke(new ManualCurtainShuttoffHandler(ManualCurtainShutoff));
}
// ACTION: Disable check boxes
}
我只想知道为什么它会两次运行该方法。如果您需要更多信息,请告诉我,我很乐意与您分享。