get {set?로 양식의 핸들을 얻는 방법?
문제
다른 클래스 (아마도 스레드)에서 내 양식의 핸들을 가져오고 싶습니다. 내가 호출하는 방식으로하고 싶다
public int GetHandle
{
get
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
return this.Handle.ToInt32();
});
}
}
}
"system.windows.forms.methodinvoker '가 void를 반환하기 때문에 오류가 발생합니다. 반환 키워드에 객체 표현식을 사용해서는 안됩니다."
호출을 사용하지 않으면 현재 스레드에서 메소드를 호출하지 않는다는 예외가 나타납니다.
해결책
MethodInvoker뿐만 아니라 대의원을 호출 할 수 있습니다. 이 시도:
public int GetHandle
{
get
{
if (this.InvokeRequired)
{
return (int)this.Invoke((GetHandleDelegate)delegate
{
return this.Handle.ToInt32();
});
}
return this.Handle.ToInt32();
}
}
private delegate int GetHandleDelegate();
제휴하지 않습니다 StackOverflow