문제

다른 클래스 (아마도 스레드)에서 내 양식의 핸들을 가져오고 싶습니다. 내가 호출하는 방식으로하고 싶다

    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();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top