ฉันได้รับรู้ถึงความเจ็บปวดอย่างถี่ถ้วนว่าบ่อยครั้งที่เราต้องเขียนรูปแบบโค้ดต่อไปนี้ในโค้ด 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
สายงานของคุณ ตรวจสอบคำตอบที่อัปเดตแล้วแจ้งให้เราทราบว่าคุณคิดอย่างไร