2010-12-01 8 views
1

개체의 BeginInvoke 메서드를 매개 변수로 전달하는 메서드가 있다고 가정합니다. 내가 어떻게 그럴 수 있니? 호출은 다음과 같습니다.BeginInvoke를 매개 변수로 전달

MyRandomMethod(SomeControl.BeginInvoke); 

MyRandomMethod의 메소드 정의는 무엇입니까?

문제의 일부는 BeginInvoke에 오버로드가 있기 때문에 컴파일러가 매개 변수로 전달하려고 시도하는 것이 무엇인지 혼란 스럽습니다. 어쩌면 제가 언급 한 BeginInvoke 버전을 말할 방법을 찾아야할까요? (나는 그것이 매개 변수 유형에 의해 결정될 것이라고 생각하지만)

+0

그것은 코드입니다 냄새는 나지만 코드를 볼 수 없습니다. 람다가 문제를 해결합니다. –

답변

3

MyRandomMethodSomeControl.BeginInvoke에 대한 오버로드 중 하나와 일치하는 대리인이있는 매개 변수가 있어야합니다. 예를 들어 :

public void MyRandomMethod(Func<Delegate, IAsyncResult> foo) 

또는

public void MyRandomMethod(Func<Delegate, object[], IAsyncResult> foo) 

(. 그냥 혼란을 요청하고, 그렇지 않으면 그러나, 이러한 서명을 모두 MyRandomMethod 자체를 너무 많이 넣지 마십시오)

+0

Jon이 권리가 있습니다. 삭제하려면 투표했습니다. – n8wrl

관련 문제