Como obter valor de retorno quando BeginInvoke / Invoke é chamado em C #
Eu tenho esse pequeno método que deveria ser seguro para threads. Tudo funciona até que eu queira que tenha valor de retorno em vez de nulo. Como obtenho o valor de retorno quando BeginInvoke é chamado?
public static string readControlText(Control varControl) {
if (varControl.InvokeRequired) {
varControl.BeginInvoke(new MethodInvoker(() => readControlText(varControl)));
} else {
string varText = varControl.Text;
return varText;
}
}
Edit: Eu acho que ter BeginInvoke não é necessário, neste caso, como eu preciso de valor da GUI antes que o segmento possa continuar. Portanto, usar Invoke também é bom. Apenas nenhuma pista de como usá-lo no exemplo a seguir para retornar valor.
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;
}
}
Mas não sei como obter valor usando esse código também;)