问题标签 [invoke]

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 回答
2030 浏览

.net - 线程安全方法调用不起作用

伙计们,

我的 frmMain 类上有一个函数,它将在调用后将我的控件更新为其他内容。当我在即时窗口上键入“?Label1.Text”时,文本属性已更新,但是当我检查表单时,什么也没发生。代码是这样的

在我的 bgWorker 类上:

0 投票
1 回答
2024 浏览

java - URLClassLoader + loadClass + 在独立进程上调用 main 方法?爪哇

我正在使用以下方法来调用 jar 文件中的类:

是否可以在单独的进程上调用它?那么正在运行的应用程序和新调用的应用程序没有任何共同点吗?

情况:您启动程序 a(客户端更新程序)。从客户端 a 您启动程序 b(客户端)

使用当前代码,项目 a 和项目 b 的所有实例共享相同的堆空间。我正在尝试实现一个状态,即项目 b 的所有实例都是独立的,并且不关心项目 A 是否终止。

0 投票
3 回答
3238 浏览

c# - Control.Invoke 在隐藏的 ShowDialog 中“卡住”

(我有一个解决这个问题的方法,但这不是我第一次被咬,所以我试图确切地了解发生了什么。)

  • 从我的申请中,我ShowDialog有一个表格。
  • 表单上有一个按钮,单击该按钮时会调用另一个(非 GUI)线程上的代码。
  • 非 GUI 线程通过 Control.Invoke发回状态 ( Pushedthen )Released
  • 当表单看到 时Pushed,它调用form.Hide()
  • 当表单看到 时Released,它会更改按钮的外观。

发生的情况是,有时,但不是每次,非 Gui 线程在尝试发送Released. 没有例外,Gui 继续“工作”,但在任何一个方向上都无法与非 Gui 线程进行进一步的通信。

线程的(简化)调用堆栈如下所示:

ShowDialog如果我替换为,问题就会消失,但有趣的是,它会变得更好(发生的频率降低),但如果我注释掉执行onShow的代码,问题并不会完全消失。HidePushed

更新

感谢nobugz,我发现了死锁(我以前只在数据库中遇到过)!显然用 Control.BeginInvoke 替换 Control.Invoke 解决了这个问题(状态事件有时仍然会“卡住”,但它不会阻止所有后续通信)。

0 投票
1 回答
2519 浏览

java - 转换 java.lang.reflect.Method.invoke 的对象结果时出现 java.lang.ClassCastException

我使用 urlClassLoader 从我的 eclipse rcp 应用程序动态加载一个外部类。invoke() 方法返回一个自定义类型的对象。

当我尝试转换此对象时,我得到 java.lang.ClassCastException:rts.data.RTSDataSet 无法转换为 rts.data.RTSDataSet。在我看来,原因是我这里有不同的 ClassLoader。我的问题是:我应该如何正确设置 ClassLoader?
感谢您的帮助!

0 投票
1 回答
8211 浏览

c# - C# 调用动作跨线程访问

问候,我是编程新手。

目前我的应用程序使用委托来处理/执行驻留在另一个类/对象中的方法。

但我收到一条错误消息,指出它们位于单独的线程中。所以在网上搜索后我想出了这个:

这工作得很好接受我不知道发生了什么。我刚刚粘贴了代码,它工作了。

目前,尽管我需要以不同的方式执行此操作,因为编译器说它不能在此操作中执行 > < != 操作。

请就如何最好地实施这一点提出建议?

非常感谢您。

0 投票
2 回答
2075 浏览

c# - BeginInvoke 问题(委托不执行任何操作)

希望你一切都好。

我遇到了 BeginInvoke 的一个奇怪问题,我真的很需要你的帮助!

我有一个类 Reporting ,其中包含多个 Reporting 类型的实例

它是一个显示在表单中的用户控件,同样的用户控件也用于 Windows 服务,以每分钟生成报告(并保存为图像)。

为了每分钟生成一份报告,我使用了 System.Threading.Timer。

这是我的班级在服务中生成报告的样子:

}

几乎一切都运行良好.. 除了有时 CreateReport 是在 ThreadPool 的另一个线程中执行的。因此,当我对报告及其组件(已在另一个线程中创建)执行一些操作时,InvokeRequired 设置为 true,这非常明显......但是 BeginInvoke 不执行任何操作!这几乎就像创建报告的线程不再存在......

你们对如何避免这个问题有任何想法吗?

我已经面临这个问题一个星期了,我已经用谷歌搜索和 stackoverflowed 。但什么都没有!

非常感谢 !

0 投票
2 回答
48 浏览

forms - 事件处理程序可以将当前对象作为参数吗?

我已经阅读了在 Windows 窗体上创建控件的另一个线程上触发事件的位置。

因此,事件处理程序不能直接更新控件(例如更改按钮的颜色)。

我阅读了有关需要 Invoke 或 BeginInvoke 的说明。

我的问题:为什么不能将事件处理程序仅作为 agrument 传递“this”。

'this' 是其控件具有希望更改颜色的按钮的表单!;)

我可以发誓我见过代表可以接受“这个”的例子——但也许不是……

0 投票
3 回答
566 浏览

java - 使用反射运行 jar 时的参数问题

我尝试使用带有 getMethod 和 invoke 方法的反射来运行 jar,但是在传递给 invoke 方法的参数时遇到了麻烦:

我得到这个错误:

正如您从堆栈跟踪中看到的那样,它正在尝试从文件夹“/home/user/./config”访问文件“param.xml”。

显然,如果 '/home/user/' 和 './config' 之间没有空格,那一切都会好起来的。

我对将参数硬编码为 String[] args 而第二个是“-c ./config/param.xml”这一事实感到困惑,它看起来像是应用程序运行的目录,即 /home/ user/, 与 ./config/ 连接,但在 ?? 之间有一个空格?

知道发生了什么吗?

大卫

0 投票
10 回答
426155 浏览

c# - 反射:如何使用参数调用方法

我试图通过带参数的反射调用一个方法,我得到:

对象与目标类型不匹配

如果我调用没有参数的方法,它工作正常。如果我调用该方法,则基于以下代码Test("TestNoParameters"),它可以正常工作。但是,如果我打电话Test("Run"),我会得到一个例外。我的代码有问题吗?

我最初的目的是传递一个对象数组,例如public void Run(object[] options),但这不起作用,我尝试了一些更简单的方法,例如字符串,但没有成功。

0 投票
7 回答
65077 浏览

c# - 在 C# 中调用 BeginInvoke/Invoke 时如何获取返回值

我有这个应该是线程安全的小方法。一切正常,直到我希望它具有返回值而不是 void。调用 BeginInvoke 时如何获取返回值?

编辑:我想在这种情况下不需要 BeginInvoke,因为在线程可以继续之前我需要来自 GUI 的值。所以使用 Invoke 也很好。只是不知道如何在以下示例中使用它来返回值。

但也不确定如何使用该代码获得价值;)