Je suis devenu douloureusement conscient de la façon dont souvent on a besoin d'écrire le code suivant modèle en event-driven code de la GUI, où
private void DoGUISwitch() {
// cruisin for a bruisin' through exception city
object1.Visible = true;
object2.Visible = false;
}
devient:
private void DoGUISwitch() {
if (object1.InvokeRequired) {
object1.Invoke(new MethodInvoker(() => { DoGUISwitch(); }));
} else {
object1.Visible = true;
object2.Visible = false;
}
}
C'est un peu maladroite motif en C#, tant à retenir et à taper. A quelqu'un de venir avec une sorte de raccourci ou de la construction qui automatise ce à un degré? Ce serait cool si il y avait un moyen d'attacher une fonction à des objets qui n'cette case sans avoir à passer par tout ce travail supplémentaire, comme un object1.InvokeIfNecessary.visible = true
type de raccourci.
Les précédentes réponses ont discuté de l'impossibilité de simplement appeler Invoke() à chaque fois, et même alors, la Invoke() la syntaxe est à la fois inefficace et toujours difficile à traiter.
Donc, quelqu'un a compris tous les raccourcis?