2012-11-30 4 views
1

바로 같은 클래스의 정적 함수에서 새 스레드를 만들었습니다.C++. net 대리자가 작동하지 않습니다 - 컴파일러 오류

동일한 클래스에서 대리인을 호출하여 GUI를 업데이트하려고합니다. 다음과 같은 컴파일러 오류가 발생합니다.

유효하지 않은 대리인 이니셜 라이저 - 함수 외에도 개체가 필요합니다. 에서 & MainUi :: AddListItemMethod.

delegate void AddListItem(void); 
    public: void AddListItemMethod(String^ myString) 
    { 
     ListView1->Items->Add(myString); 
    } 

private: static void SecondThread() 
{ 
AddListItem^ del = gcnew AddListItem(&MainUI::AddListItemMethod); 
del->Invoke("test"); 
} 

나는 왜 작동하지 않는지 모른다. 나는 또한 이것을 시도하고 여전히 실패했다. 어떤 도움을 주시겠습니까?

Invoke(gcnew AddListItem(MainUI::&AddListItemMethod), "test"); 
+0

이 메소드는 'MainUI :: AddListItemMethod'처럼 정적으로 사용되어야합니다. –

+0

좋아,하지만 메서드는 Listview1 컨트롤에 액세스 할 수 있도록 비 정적이어야합니다. 어떻게 해결할 수 있습니까? – user1255454

+0

'Listview1' 정적을 작동하게 만들거나'MainUI' 클래스의 인스턴스/객체를 생성하여 그 클래스의 정적이 아닌 메소드에 접근해야합니다. –

답변

2

은 어느 당신은 일을 할 Listview1 정적 확인해야 또는 해당 클래스의 비 정적 메서드에 액세스 할 수 MainUI 클래스의 인스턴스/객체를 생성해야한다.

감사합니다. 해피 코딩.