Fiquei dolorosamente ciente da frequência com que é necessário escrever o seguinte padrão de código no código da GUI orientada a eventos, em que
private void DoGUISwitch() {
// cruisin for a bruisin' through exception city
object1.Visible = true;
object2.Visible = false;
}
torna-se:
private void DoGUISwitch() {
if (object1.InvokeRequired) {
object1.Invoke(new MethodInvoker(() => { DoGUISwitch(); }));
} else {
object1.Visible = true;
object2.Visible = false;
}
}
Esse é um padrão estranho no C #, tanto para lembrar quanto para digitar. Alguém veio com algum tipo de atalho ou construção que automatiza isso até certo ponto? Seria legal se houvesse uma maneira de anexar uma função a objetos que fazem essa verificação sem ter que passar por todo esse trabalho extra, como um object1.InvokeIfNecessary.visible = true
atalho de tipo.
Respostas anteriores discutiram a impraticabilidade de apenas chamar Invoke () todas as vezes, e mesmo assim a sintaxe Invoke () é ineficiente e ainda difícil de lidar.
Então, alguém descobriu algum atalho?
object1.InvokeIfNecessary.Visible = true
fala; confira minha resposta atualizada e deixe-me saber o que você pensa.