매우 근사한 (내가 근본적으로 뭔가를 놓치고 있는지 궁금해하는 것 같아 보이지만) 나는이 모든 아침에 막혔다. 클래스에 다음 코드가 있습니다.디스패처로부터 대리인을 불러 내기
public class myClass
{
private Dispatcher m_Dispatcher;
private void myMethod() { ... }
private void invokeTheMethod(object sender, PropertyChangedEventArgs e)
{
m_Dispatcher.Invoke(myMethod); //XYZ
}
}
Dispatcher는 myClass 인스턴스가 실행되고있는 스레드에 연결되어 있습니다. invokeTheMethod 메서드는 다른 스레드에서 호출되며 m_Dispatcher 스레드에서 myMethod를 실행하고 싶습니다. 그러나이 코드를 실행하려고하면 "개체 참조가 아닌 개체 참조"라는 XYZ 예외가 발생합니다. 이것은 위임자의 형태로 myMethod를 선언하지 않았기 때문입니까? - myMethod를 대리자로 선언하는 여러 가지 방법을 시도했지만 컴파일 할 수는 없습니다. 어떤 제안이라도 대단히 감사합니다.
덕분에, 크리스
안녕하세요, 감사합니다! 매우 당혹 스럽네요. 저는 이미 디스패처를 초기화했다고 생각했습니다. (생성자 코드의 생략은 의도적이었습니다). 아직도, 나는 당신이 고통의 몇 시간 나를 구했다고 생각합니다) –