我想从一个不同的类获得表单的句柄(可能是线程)。 我想这样做,我不调用方式

    public int GetHandle
    {
        get
        {
            if (this.InvokeRequired)
            {
                this.Invoke((MethodInvoker)delegate
                {
                    return this.Handle.ToInt32();
                });
            }
        }
    }

我碰到一个错误“自从‘System.Windows.Forms.MethodInvoker’返回空隙,返回关键字必须不被随后的对象表述”

如果我不使用invoke,我得到的,我不是从调用当前线程的方法异常。

有帮助吗?

解决方案

您可以调用任何代表,而不仅仅是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