【发布时间】:2012-10-17 12:14:55
【问题描述】:
我整个早上都被困在这个问题上,尽管它看起来应该很容易(想知道我是否遗漏了一些基本的东西)。我在一个类中有以下代码-
public class myClass
{
private Dispatcher m_Dispatcher;
private void myMethod() { ... }
private void invokeTheMethod(object sender, PropertyChangedEventArgs e)
{
m_Dispatcher.Invoke(myMethod); //XYZ
}
}
调度程序附加到运行 myClass 实例的线程上。 invokeTheMethod 方法是从另一个线程调用的,我想在 m_Dispatcher 的线程上运行 myMethod。但是,如果我尝试运行此代码,我会在 XYZ 处得到一个异常,说“对象引用不是对象的实例”。这是因为我没有以委托的形式声明 myMethod 吗? - 我尝试了不同的方法将 myMethod 声明为委托,但我无法编译它们中的任何一个。任何建议都非常感谢。
谢谢, 克里斯
【问题讨论】:
标签: multithreading delegates invoke