Me he dado cuenta de cuán a menudo es necesario escribir el siguiente patrón de código en el código GUI controlado por eventos, donde
private void DoGUISwitch() {
// cruisin for a bruisin' through exception city
object1.Visible = true;
object2.Visible = false;
}
se convierte en:
private void DoGUISwitch() {
if (object1.InvokeRequired) {
object1.Invoke(new MethodInvoker(() => { DoGUISwitch(); }));
} else {
object1.Visible = true;
object2.Visible = false;
}
}
Este es un patrón incómodo en C #, tanto para recordar como para escribir. ¿Alguien ha encontrado algún tipo de atajo o construcción que automatice esto hasta cierto punto? Sería genial si hubiera una manera de adjuntar una función a los objetos que realiza esta comprobación sin tener que pasar por todo este trabajo adicional, como un object1.InvokeIfNecessary.visible = true
acceso directo de tipo.
Las respuestas anteriores han discutido la impracticabilidad de llamar a Invoke () cada vez, e incluso entonces la sintaxis de Invoke () es ineficiente y aún difícil de manejar.
Entonces, ¿alguien ha descubierto algún atajo?
object1.InvokeIfNecessary.Visible = true
línea; mira mi respuesta actualizada y déjame saber lo que piensas.