问题标签 [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.

0 投票
1 回答
7918 浏览

vb.net - VB.net 调用控件中的属性更改

很多关于如何调用方法的例子,但是如何改变一个简单的属性呢?

为了演示,这里有一组非常简单的代码,应该会有所帮助。假设我需要从子窗体设置可见属性,因此需要调用它:

谢谢

0 投票
8 回答
17602 浏览

c# - 清理满是 InvokeRequired 的代码

我知道从任何非 UI 线程操作 UI 控件时,您必须将调用编组到 UI 线程以避免出现问题。普遍的共识是您应该使用测试 InvokeRequired,如果为真,则使用 .Invoke 来执行封送处理。

这导致很多代码看起来像这样:

我的问题是:我可以省略 InvokeRequired 测试而只调用 Invoke,如下所示:

这样做有问题吗?如果是这样,是否有更好的方法来保留 InvokeRequired 测试,而不必在整个地方复制和粘贴此模式?

0 投票
3 回答
1666 浏览

.net - 面试题:Control.InvokeRequired 时你使用 Control.Invoke 还是 Control.BeginInvoke?

我最近接受了一次非常糟糕的采访,他们和你一起扮演好警察/坏警察。无论我回答什么,对他们来说都不够好,我的信心每分钟都在萎缩。他最后一个让我很困惑的问题是:

如果控件需要 InvokeRequired,在执行 .Invoke 或 .BeginInvoke 时会有所不同吗?

举个例子,我是怎么理解的:

我提到 BeginInvoke 将异步执行此操作,而 Invoke 将暂停 UI 线程直到其执行。但这还不够好。尽管如此,如果我使用 Invoke 代替,我不明白这里的性能含义。有人可以启发我吗?

0 投票
3 回答
4492 浏览

.net - 表单的 InvokeRequired == false 和包含控件的 InvokeRequired == true

这怎么可能?我有 Windows 窗体控件,它派生自 System.Windows.Forms.Form,其中包含 WebBrowser 控件。Webbrowser 对象实例在表单的构造函数中创建(在 InitializeComponent() 方法中)。然后在后台线程中我使用 WebBrowser 的内容进行操作,我发现在某些情况下 Form.InvokeRequired == false,而 WebBrowser.InvokeRequired == true。怎么可能?

0 投票
1 回答
1333 浏览

c# - 修复来自 backgroundWorker 的线程安全调用

如何修复我的文本标签?我正在使用 backgroundWorker,它没有标签就可以工作,但是当我有 em 时,它一直在说Cross-thread operation not valid: Control 'label3' accessed from a thread other than the thread it was created on.

0 投票
2 回答
1796 浏览

c# - SynchronizationContext 和 InvokeRequired

我一直在寻找这个问题的答案,但似乎找不到令人满意的答案。也许这里有人可以启发我。

我有一个BindingList<T>存储对对象的引用的后代,SynchronizationContext以便在 UI 线程上引发其更改的事件。

现在,它也有可能BindingList<T>是在 UI 线程而不是后台线程上创建和使用的。如果没有类似可用的属性,我该如何检查InvokeRequiredSynchronizationContext.Send在 UI 线程上调用会有什么后果?

0 投票
3 回答
9768 浏览

c# - C# .WPF 中的线程调用

那里。我正在使用 C# .wpf,我从 C# 源代码中获得了一些代码,但我不能使用它。有什么我必须改变的吗?还是做?

如上代码,错误在InvokeRequiredInvoke

目的是,我有一个内容文本框,将为每个进程增加。

这是文本框的代码。SetText(currentIterationBox.Text = iteration.ToString());

代码有什么问题吗?

感谢您的任何帮助

编辑

0 投票
3 回答
11400 浏览

c# - C#跨线程调用问题

我正在用 c# 编写一个表单应用程序,我需要能够从任何线程更改富文本框的内容,我尝试使用委托InvokeRequired,但我所做的委托仍然给我一个跨线程调用错误,并且 InvokeRequired 使表单崩溃,而不会给出错误。我需要能够从任何线程执行的功能:

我尝试使用的代表:

我的 InvokeRequired 代码:

我不太确定为什么上面的代码不起作用。谢谢!

0 投票
3 回答
974 浏览

c# - InvokeRequired 挂起

UI 线程偶尔会在以下方法中的语句“if (this.InvokeRequired)”处挂起。

你能帮我找出问题的原因吗

0 投票
2 回答
446 浏览

c# - InvokeRequired 怀疑

以下方法将从非 UI 线程调用。我应该检查 InvokeRequired,以便在方法中调用这些项目吗?

一个。this._moduleStatusGrid.Invalidate()
b. this.Close()