Questions tagged «invoke»

在拥有控件的基础窗口句柄的线程上执行指定的委托。


22
跨线程操作无效:从创建该线程的线程以外的线程访问控件
我有一个场景。(Windows窗体,C#、. NET) 有一个主窗体可以承载一些用户控件。 用户控件执行一些繁重的数据操作,因此,如果我直接调用该UserControl_Load方法,则UI将在装入方法执行期间无响应。 为了克服这个问题,我将数据加载到不同的线程上(尝试尽我所能更改现有代码) 我使用了一个后台工作线程来加载数据,完成后将通知应用程序它已经完成了工作。 现在出现了一个真正的问题。所有UI(主窗体及其子用户控件)均在主主线程上创建。在usercontrol的LOAD方法中,我基于userControl上某些控件(如文本框)的值获取数据。 伪代码如下所示: 代码1 UserContrl1_LoadDataMethod() { if (textbox1.text == "MyName") // This gives exception { //Load data corresponding to "MyName". //Populate a globale variable List<string> which will be binded to grid at some later stage. } } 它给的例外是 跨线程操作无效:从创建该线程的线程以外的线程访问控件。 要了解更多信息,我进行了一些谷歌搜索,并提出了一条建议,例如使用以下代码 代码2 UserContrl1_LoadDataMethod() { if (InvokeRequired) …


13
什么会导致java.lang.reflect.InvocationTargetException?
好吧,我试图理解并阅读可能导致它的原因,但是我却无法理解: 我的代码中有这个地方: try{ .. m.invoke(testObject); .. } catch(AssertionError e){ ... } catch(Exception e){ .. } 事实是,当它尝试调用某个方法时,它会抛出InvocationTargetException而不是其他预期的异常(特别是ArrayIndexOutOfBoundsException)引发 。我实际上知道调用了什么方法,所以我直接转到此方法代码,并为假定要抛出的行添加了一个try-catch块 ArrayIndexOutOfBoundsException,它确实ArrayIndexOutOfBoundsException按预期抛出了。然而,当它上升时,以某种方式InvocationTargetException在catch(Exception e) e 上面的代码中进行更改是InvocationTargetException不ArrayIndexOutOfBoundsException 符合预期的。 是什么原因导致这种行为的?我该如何检查?

9
反射:如何使用参数调用方法
我试图通过反射与参数来调用方法,我得到: 对象与目标类型不匹配 如果我调用不带参数的方法,则效果很好。基于以下代码(如果我调用该方法)Test("TestNoParameters"),它可以正常工作。但是,如果我致电Test("Run"),我会得到一个例外。我的代码有问题吗? 我最初的目的是传递一个对象数组,例如,public void Run(object[] options)但这没有用,我尝试了一些简单的事情,例如字符串,但没有成功。 // Assembly1.dll namespace TestAssembly { public class Main { public void Run(string parameters) { // Do something... } public void TestNoParameters() { // Do something... } } } // Executing Assembly.exe public class TestReflection { public void Test(string methodName) { Assembly assembly = …


5
Javascript从字符串动态调用对象方法
我可以动态调用以方法名称为字符串的对象方法吗?我会这样想: var FooClass = function() { this.smile = function() {}; } var method = "smile"; var foo = new FooClass(); // I want to run smile on the foo instance. foo.{mysterious code}(); // being executed as foo.smile();

9
调用(委托)
任何人都可以解释这个链接上写的声明吗 Invoke(Delegate): 在拥有控件的基础窗口句柄的线程上执行指定的委托。 任何人都可以解释一下这是什么意思(尤其是大胆的意思)吗?

2
Func <T>()与Func <T> .Invoke()
我很好奇直接调用Func与在其上使用Invoke()之间的区别。有区别吗?是第一个语法糖,并且在下面调用Invoke()吗? public T DoWork&lt;T&gt;(Func&lt;T&gt; method) { return (T)method.Invoke(); } 与 public T DoWork&lt;T&gt;(Func&lt;T&gt; method) { return (T)method(); } 还是我完全走错了路:)谢谢。
82 c#  invoke  func 

3
如何使用反射来调用.NET中的重载方法
有没有一种方法可以使用.NET(2.0)中的反射来调用重载方法。我有一个应用程序,该应用程序可以动态实例化从通用基类派生的类。出于兼容性目的,此基类包含2个同名的方法,一个带有参数,另一个不带参数。我需要通过Invoke方法调用无参数方法。现在,我得到的只是一个错误,告诉我我正在尝试调用一个模棱两可的方法。 是的,我可以将对象强制转换为基类的实例,然后调用所需的方法。最终将发生这种情况,但是现在,内部复杂性是不允许的。 任何帮助将是巨大的!谢谢。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.