Saya telah menyadari betapa seringnya seseorang perlu menulis pola kode berikut dalam kode GUI yang digerakkan oleh event, di mana
private void DoGUISwitch() {
// cruisin for a bruisin' through exception city
object1.Visible = true;
object2.Visible = false;
}
menjadi:
private void DoGUISwitch() {
if (object1.InvokeRequired) {
object1.Invoke(new MethodInvoker(() => { DoGUISwitch(); }));
} else {
object1.Visible = true;
object2.Visible = false;
}
}
Ini adalah pola canggung dalam C #, baik untuk diingat, dan untuk mengetik. Adakah yang datang dengan semacam jalan pintas atau konstruksi yang mengotomatisasi ini ke tingkat tertentu? Akan keren jika ada cara untuk melampirkan fungsi ke objek yang melakukan pemeriksaan ini tanpa harus melalui semua pekerjaan tambahan ini, seperti object1.InvokeIfNecessary.visible = truepintasan jenis.
Jawaban sebelumnya telah membahas ketidakpraktisan dari hanya memanggil Invoke () setiap kali, dan bahkan kemudian sintaks Invoke () keduanya tidak efisien dan masih canggung untuk dihadapi.
Jadi, adakah yang tahu cara pintas?
object1.InvokeIfNecessary.Visible = truekalimat Anda ; lihat jawaban saya yang diperbarui dan beri tahu saya apa yang Anda pikirkan.