Domanda

Mi piacerebbe avere il manico della mia forma da una classe diversa (probabilmente Thread). Voglio farlo nel modo io invoco

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

ottengo un errore "Dal momento che i rendimenti 'System.Windows.Forms.MethodInvoker' vuoto, una parola chiave di ritorno non deve essere seguita da un'espressione oggetto"

Se io non uso l'invoke, ottengo un'eccezione che non sto chiamando il metodo dal thread corrente.

È stato utile?

Soluzione

È possibile richiamare ogni delegato, non solo MethodInvoker. Prova questo:

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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top