问题标签 [begininvoke]

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 投票
3 回答
1721 浏览

c# - 在 MulticastDelegate 上调用 BeginInvoke?

根据Jon Skeet的说法,“您只能在具有单个目标调用的委托上调用 BeginInvoke。”

这是为什么?真正的原因是什么?

注意:为了澄清(并且因为我犯了这个错误),我说的BeginInvoke是代表,而不是控制。

0 投票
2 回答
14111 浏览

c# - beginInvoke、GUI 和线程

我有两个线程的应用程序。其中一个 (T1) 是主要的 GUI 形式,另一个 (T2) 是循环工作的函数。当 T2 得到一些信息时,必须以 GUI 形式调用函数。我不确定我做对了。

T2 调用函数 FUNCTION,以 GUI 形式更新某些内容。

但现在我必须声明两个函数。它如何只使用一个功能?或者如何正确。

0 投票
1 回答
1140 浏览

c# - control.BeginInvoke() 调用委托失败

我注意到 control.BeginInvoke(delegate) 有时无法调用委托。我知道 BeginInvoke 只是创建一个 PostMessage 并且该消息稍后由应用程序处理(默认情况下发布消息限制为 10,000)。鉴于我们的应用程序不是很复杂,是否还有其他原因导致它无法执行委托?我的代码如下所示。

0 投票
2 回答
4831 浏览

vb.net - 试图理解 MSDN 上的 Control.BeginInvoke 代码

我指的是 MSDN 上的这个文档。我了解“.BeginInvoke”的作用,但是查看文档上的示例代码

委托 myDelegate(和 DelegateMethod)接受一个控件和一个字符串,但是,在 .BeginInvoke 处,传递了一个 Label 控件和一个数组......

在“DelegateMethod”中有

不应该传递字符串而不是数组吗?我错过了什么吗?

0 投票
3 回答
4800 浏览

c# - 异步调用 - 是否需要 EndInvoke?

可能的重复:
每个 BeginInvoke 必须跟 EndInvoke 吗?
EndInvoke() 是可选的,是可选的,还是绝对不是可选的?

我有一个多线程应用程序,其中一个辅助线程需要每隔几分钟在主线程上执行一次代码。没有任何返回值,并且第二个线程不关心它是否引发任何异常或无法运行。

到目前为止,我一直让它通过 运行代码Form.Invoke,但有时它需要比平时更长的时间(几秒钟)并阻塞线程直到它完成。我需要第二个线程能够继续执行而不会停顿几秒钟。

BeginInvoke听起来它可以很好地完成工作,但我真的没有任何地方可以调用EndInvoke,因为我不想等待它或获得返回值。并且考虑到被调用的代码涉及一堆本机调用,我不确定它是否是一个好主意EndInvoke

我是否需要调用EndInvoke,或者是否有其他方法可以让代码在主窗体线程上异步运行,我应该使用它来代替?

谢谢 =)

0 投票
2 回答
642 浏览

c# - BeginInvoke、EndInvoke 的多线程问题?

我有一个显示实时值的客户端应用程序。这些值是通过 DDE-Advise 提供的。这些实时值是数控机床的移动轴。因此,每分钟大约有 100 条建议通过这种方法进入DdeClientAdvise
当应用程序获得许多 DDE 建议时,似乎突然所有建议都丢失了。
我将问题简化为以下内容:

如果我删除评论 LINE A,一切正常,没有任何建议丢失。所有的建议都被记录下来。
如果我启用 BeginInvoke,一段时间后DdeClientAdvise-Method 不再被调用,不再有日志条目。

BeginInvoke,EndInvoke 我做错了什么?

编辑:添加更多关于课程的信息。

0 投票
1 回答
1471 浏览

vb.net - VB.NET 在另一个线程上调用 BeginInvoke

因此,从http://www.codeproject.com/KB/cs/Threadsafe_formupdating.aspx上此人代码被翻译成 VB.NET 的评论部分,它显示了一些代码来帮助调用跨线程 UI 的东西。

但是,当我尝试调用以下命令时,出现错误:

或者

错误 1 ​​扩展方法 'Public Function SafeInvoke(Of TResult)(ByRef call As System.Func(Of frmLogin, TResult)) As TResult 中的类型参数的数据类型在 'GvE.Globals' 中定义不能从这些论点中推断出来。明确指定数据类型可能会更正此错误。C:\GvE\GvE\frmLogin.vb 37 9 GvE

我错过了什么?我从表单中定义的方法内部调用该代码,但该方法是从另一个线程调用的。

只是试图避免委托,这就是上面的代码应该做的,但就是不能让它工作。

谢谢

0 投票
2 回答
949 浏览

c# - Socket编程:异步发送和读取方法能保证数据的顺序吗?

如果我连续调用c#异步方法如下所示:

异步方法能保证数据的顺序吗?

其他支持异步操作的网络库是否考虑了问题?
它们如何实现以保证内部异步操作中的数据顺序?

0 投票
2 回答
29438 浏览

c# - 调用事件处理程序

我有以下事件处理程序:

有人可以解释以下片段之间的区别吗?
片段事件处理程序(A):

片段 BeginInvoke (B):

澄清一下:“按原样”调用 EventHandler 和使用之间有什么区别BeginInvoke

0 投票
2 回答
1130 浏览

silverlight - 为什么使用 Dispatcher.BeginInvoke?

我已经看到(并阅读)关于使用 Dispatcher.BeginInvoke 来确保 UI 更新发生在 UI 线程上。我明白这个道理。

但是我看到了在视图代码隐藏中分配属性(例如 TextBlock 的 Text 属性)的示例,仅当您在此 Dispatcher.BeginInvoke 中分配它时才被声明为安全的。

问题 如果我从视图的代码隐藏中操作任何内容,是否暗示它正在 UI 线程上进行操作(假设我没有使用 BackgroundWorker 或异步服务调用)。

在我上面提到的示例中,没有使用其他线程或异步操作。

问题 2 如果我有一个异步 Web 服务处理程序,并且我想从该处理程序中更新 TextBlock 的字符串。我可以直接分配 TB 的 Text 属性,还是应该使用 Dispatcher.BeginInvoke。请注意,我通常不会这样做,因为我更喜欢数据绑定而不是像这样的直接 UI 元素操作。