Wie erhalte ich einen Rückgabewert, wenn BeginInvoke / Invoke in C # aufgerufen wird?

Ich habe diese kleine Methode, die threadsicher sein soll. Alles funktioniert, bis ich will, dass es Rückgabewert anstelle von nichtig hat. Wie erhalte ich den Rückgabewert, wenn BeginInvoke aufgerufen wird?

public static string readControlText(Control varControl) {
        if (varControl.InvokeRequired) {
            varControl.BeginInvoke(new MethodInvoker(() => readControlText(varControl)));
        } else {
            string varText = varControl.Text;
             return varText;
        }

    }

Bearbeiten: Ich denke, dass BeginInvoke in diesem Fall nicht notwendig ist, da ich einen Wert von der GUI benötige, bevor der Thread fortgesetzt werden kann. Invoke ist also auch gut. Nur keine Ahnung, wie man es im folgenden Beispiel benutzt, um einen Wert zurückzugeben.

private delegate string ControlTextRead(Control varControl);
    public static string readControlText(Control varControl) {
        if (varControl.InvokeRequired) {
            varControl.Invoke(new ControlTextRead(readControlText), new object[] {varControl});
        } else {
            string varText = varControl.Text;
             return varText;
        }

    }

Aber ich bin mir auch nicht sicher, wie ich mit diesem Code einen Wert erhalten kann;)

Antworten auf die Frage(6)

Ihre Antwort auf die Frage