问题标签 [invokerequired]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winforms - VS2017/2017 中缺少 InvokeRequired 属性
我正在创建一个 Windows 窗体程序,在 VS2017/2019 中,无论是 TextBox 控件还是表单本身,智能感知都不会提示 InvokeRequired 属性。
编译时,编译器生成错误:'InvokeRequired' is not a member of Textbox。
在对象浏览器中导航时,Control 类定义了 InvokeRequired 属性,TextBoxBase 继承 Control,然后 TextBox 继承 TextBoxBase。所以 TextBox 应该有这个属性。
有人知道这个问题吗?
javascript - 我想从结帐页面中删除它,但它具有必需的属性,如何删除它?
这是在 checkout.page.blade 我想从结帐页面中删除帐户创建表单,但是电子邮件和密码部分具有必需的属性,并且它显示它在前端是必需的,即使我从中删除了这部分这页纸。
c# - 如何 Invoke / MethodInvoker 调用自己
在这个问题的几次关闭后添加
NO,这个问题没有给出答案。
我试过了,我在我的代码中引用了它,但它没有从Invoke
!
原始问题
直到现在,每当我有任何其他线程必须更新 UI 上的某些内容时,我都会以这样的模式使用 InvokeRequired / BeginInvoke。
测试用法:
第一次InvokeRequired
是真的,第二次是假的;
但是现在我需要使用具有返回值的方法来执行此操作。 StackOverflow 来救援!
回答说:
- Control.BeginInvoke:在 UI 线程上执行,调用线程不等待完成。
- Control.Invoke:在 UI 线程上执行,但调用线程在继续之前等待完成。
所以我认为:
唉,这行不通。第一次 InvokeRequired 为真,但没有第二次 InvokeRequired。
如何使用 Invoke / MethodInvoker?
在这个问题的几次关闭后添加
可能是我在测试代码中错误地调用它:
c# - 为什么 UI 交互没有内置的“安全”方法?
我是一个狂热的开发者,而不是一个专业的开发者,因此我对为什么有些问题是这样的没有高度的技术理解。最近,我一直在研究应用程序,我一直在尝试通过使用后台工作程序来处理各种数据库调用来提高响应能力。
后台工作人员完成后,我需要更新 UI,因此我通常会执行以下操作:
现在,显然这有效。但是随着我发现我需要的扩展方法的数量开始增长(我有它们用于设置样式、动态添加子控件、向 datagridviews 添加行等),我想知道为什么没有一组标准方法可用.Net WinForms 语言/模型用于这些类型的事情,甚至为什么 InvokeRequired 检查不会在幕后自动进行并且根据需要应用委托(我的猜测是这是一个性能问题 - 为什么要检查调用在大多数情况下根本不需要线程)。我试图对此进行研究,但没有找到任何体面的答案。
如果我将其总结为一组问题:
- 我的方法中是否有任何固有的坏/错误(后台工作人员通过检查的扩展方法更新控件
InvokeRequired
) - 我在想为什么 .Net WinForms 中的各种方法不能自动
InvokeRequired
进行正确的检查(调用 InvokeRequired 有多少开销)? - 同样,.Net WinForms 规范中不存在用于常见 UI 更新的线程安全方法是否有原因?