Acı ne sıklıkta olay olay güdümlü GUI kodunda aşağıdaki kod desenini yazmak için ne kadar sık gerektiğini fark var
private void DoGUISwitch() {
// cruisin for a bruisin' through exception city
object1.Visible = true;
object2.Visible = false;
}
dönüşür:
private void DoGUISwitch() {
if (object1.InvokeRequired) {
object1.Invoke(new MethodInvoker(() => { DoGUISwitch(); }));
} else {
object1.Visible = true;
object2.Visible = false;
}
}
Bu, hem hatırlamak hem de yazmak için C # 'daki garip bir modeldir. Herkes bunu bir dereceye kadar otomatikleştiren bir tür kısayol veya yapı ile geldi mi? Bu kontrolü yapan nesnelere, bir object1.InvokeIfNecessary.visible = true
tür kısayol gibi, tüm bu fazladan işi yapmak zorunda kalmadan bir işlev eklemenin bir yolu olsaydı havalı olurdu .
Önceki cevaplar sadece Invoke () her zaman aradığını pratik olmadığının ele aldık ve o zaman bile Çağırma () sözdizimi verimsiz ve hem hala başa garip.
Peki, herhangi bir kısayol çözen var mı?
object1.InvokeIfNecessary.Visible = true
; güncellenmiş cevabımı kontrol et ve bana ne düşündüğünü söyle.