Я болісно усвідомлював, як часто потрібно писати наступний зразок коду в GUI-коді, керованому подіями, де
private void DoGUISwitch() {
// cruisin for a bruisin' through exception city
object1.Visible = true;
object2.Visible = false;
}
стає:
private void DoGUISwitch() {
if (object1.InvokeRequired) {
object1.Invoke(new MethodInvoker(() => { DoGUISwitch(); }));
} else {
object1.Visible = true;
object2.Visible = false;
}
}
Це незручний зразок в C #, як пам'ятати, так і вводити. Хто-небудь придумав якийсь ярлик чи конструкцію, яка автоматизує це до певної міри? Було б здорово, якби був спосіб приєднати функцію до об'єктів, які виконують цю перевірку, не проходячи всю цю додаткову роботу, як object1.InvokeIfNecessary.visible = true
ярлик типу.
Попередні відповіді обговорювали недоцільність просто викликати Invoke () щоразу, і навіть тоді синтаксис Invoke () є неефективним і все ще незручним для вирішення.
Отже, хтось придумав якісь ярлики?
object1.InvokeIfNecessary.Visible = true
лінією; перевіри мою оновлену відповідь і дай мені знати, що ти думаєш.