‫ยินดีต้อนรับกลับ.
‫ในวิดีโอนี้ เราจะพูดถึงงานต่างๆ โดยเฉพาะเมื่อทำงานกับ DWP
‫ดังนั้น มาสร้างโปรเจ็กต์ใหม่และใช้ WP F ที่นี่ และฉันจะเรียกมันว่างาน WP F และ EE ในกรณีของฉัน
‫จากนั้นให้กด OC เพื่อสร้างโปรเจ็กต์นั้น และใน UI ของฉัน ตอนนี้ มาเพิ่มปุ่มกัน แล้วฉันจะทำผ่านกล่องเครื่องมือ
‫ดังนั้นฉันจะเลือกปุ่มและลากไปที่ UI ของฉัน
‫ดังนั้นเราจึงมี
‫ผมจะทำให้ใหญ่ขึ้นอีกนิดแล้วเปลี่ยนขนาดฟอนต์เป็น 32 กัน บางทีอาจจะประมาณนั้น
‫ตอนนี้อ่านง่ายขึ้นเล็กน้อยและฉันจะตั้งชื่อให้
‫ชื่อเท่ากับปุ่มของฉันเพราะฉันต้องการใช้ในภายหลังในโค้ดด้านหลัง
‫ไม่เป็นไร.
‫นั่นคือ UI
‫สำหรับตอนนี้ เราจะเพิ่มเว็บเบราว์เซอร์เล็กน้อยในภายหลัง แต่สำหรับตอนนี้ ปุ่มจะยังใช้ได้อยู่
‫และในหน้าต่างหลักของฉัน ฉันต้องการใช้ปุ่มนั้น แต่ฉันต้องการเหตุการณ์การคลิก ดังนั้น
‫ดังนั้นเมื่อใดก็ตามที่มีคนคลิกที่ปุ่มนั้น ฉันต้องการดาวน์โหลดบางอย่างจากเว็บ และเมื่อดาวน์โหลดเสร็จแล้ว
‫ฉันต้องการกำหนด HTML ให้กับข้อความของปุ่มหรือเนื้อหาปุ่ม และด้วยเหตุนี้ฉันจึงต้องมีเหตุการณ์การคลิก
‫ดังนั้นฉันจะดับเบิลคลิกที่ปุ่มและมันจะสร้างเหตุการณ์การคลิกปุ่มใหม่ของฉันที่นี่
‫ดังนั้นวิธีนี้จะถูกเรียกใช้เมื่อใดก็ตามที่เราคลิกที่ปุ่ม
‫และวิธีที่ง่ายที่สุดที่จะดูว่าจริงหรือไม่คือใช้กล่องข้อความแล้วพูดบางอย่างเช่น สวัสดี หรือใช้งานได้หรืออะไรทำนองนั้น
‫ตอนนี้เรามาลองใช้งานกันเพื่อดูว่าโค้ดของเราใช้งานได้จริงหรือไม่
‫เพราะก่อนที่เราจะทำอย่างอื่นเรามาดูกันว่าปุ่มใช้งานได้หรือไม่และมันบอกว่าสวัสดี
‫ไม่เป็นไร ไม่เป็นไร
‫อย่างที่คุณเห็น ข้อความนั้นไม่ได้ใหญ่เท่ากับข้อความปุ่ม
‫ที่ไม่สวย
‫แต่นั่นไม่ใช่สิ่งที่เกี่ยวกับวิดีโอนี้
‫ใช่ไหม
‫มันเกี่ยวกับงานและการดาวน์โหลดบางอย่างในพื้นหลังในขณะที่ UI ไม่ติด
‫เอาล่ะ เรามาหาวิธีทำให้มันติดกันเถอะ
‫ไปข้างหน้าและลองทำบางอย่างเช่นการดาวน์โหลด
‫และเพื่อดาวน์โหลดบางอย่าง ฉันจะใช้ไคลเอ็นต์ HTTP และฉันจะโทรหาเว็บไคลเอ็นต์
‫ตอนนี้ไคลเอนต์ HTTP เป็นคลาสที่เราต้องเพิ่มระบบ dot net, dot, http
‫นั่นคือสิ่งที่เราต้องการที่นี่
‫ดังนั้นเว็บไคลเอ็นต์นี้ตอนนี้ มันจะเป็นไคลเอนต์ HTTP ใหม่และตอนนี้ฉันต้องการมีสตริงที่จะเป็น
‫HTML ซึ่งจะเป็นเว็บไคลเอ็นต์ dot รับสตริง async และสตริงใดที่จะเข้ากันได้ดี มันควรจะได้ https
‫.
‫โคลอน ฟอร์เวิร์ด สแลช ฟอร์เวิร์ด สแลช google dot com
‫และฉันต้องการได้รับผลของสิ่งนั้น
‫ดังนั้นดาวน์โหลดเว็บไซต์และให้ผลลัพธ์แก่ฉันและเก็บไว้ใน HTML
‫นั่นคือสิ่งที่สิ่งนี้จะทำ
‫ถูกต้อง.
‫และสิ่งที่ผมจะได้เห็นคือหัวข้อที่ผมกำลังดูอยู่
‫เลยอยากเห็นกระทู้ที่กำลังทำอยู่
‫เส้นขวาจะเป็นเลขเกลียวและจุดด้าย
‫และเพื่อที่จะใช้เธรด เราต้อง
‫ใช้เธรดระบบและเพื่อที่จะใช้การดีบัก เราจำเป็นต้องใช้การวินิจฉัยระบบ
‫ลองทำสองสิ่งนี้กัน และตอนนี้ เราสามารถไปข้างหน้าและรับเธรดปัจจุบันและ ID เธรดที่มีการจัดการ
‫เลยอยากทราบว่าตอนนี้ใช้ thread ไหนอยู่ครับ?
‫ดังนั้นเมื่อฉันคลิกปุ่มการดีบักนี้จะถูกพิมพ์และจะดาวน์โหลดบางสิ่ง
‫ตอนนี้ สมมติว่าฉันต้องการเปลี่ยนเนื้อหาของปุ่ม เพื่อให้ปุ่มของฉันมีเนื้อหาเหมือนเสร็จสิ้น
‫เลยมาทดสอบกัน
‫เราอยู่ที่นั่น
‫เมื่อฉันคลิกที่ปุ่ม คุณจะเห็นว่าตอนนี้มันเสร็จสิ้น ดาวน์โหลดและเสร็จสิ้น
‫และนั่นก็เกิดขึ้นเพราะอันนี้นี่
‫ดังนั้นการดาวน์โหลด Google com ทำงานได้ค่อนข้างเร็วจริง ๆ และด้วยเหตุนี้จึงเป็นไปได้ที่จะทำเนื้อหาที่เท่าเทียมกัน
‫แต่โดยปกติแล้ว ไม่น่าจะเป็นไปได้ หรือโดยส่วนใหญ่แล้วจะไม่สามารถทำได้ เนื่องจากงานนี้มักใช้เวลาค่อนข้างนาน
‫และเรามีเธรดที่นี่ที่ค่อนข้างหนักหน่วงเพราะว่าการดาวน์โหลดสิ่งต่าง ๆ มักจะใช้เวลาสักครู่และยกเว้นว่ามันน้อยมากที่เราดาวน์โหลดจริงในกรณีนี้
‫เราเพิ่งดาวน์โหลดเว็บไซต์ Google ดอทคอมซึ่งมาก ,สั้นมาก.
‫มันก็แค่สองสามกิโลไบต์
‫ดังนั้นฉันจะไม่ดาวน์โหลดไฟล์ขนาดห้าเมกะไบต์แทน
‫ดังนั้นจึงใช้เวลานานขึ้นเล็กน้อยจนกว่าทุกอย่างจะเสร็จสิ้น
‫ลองตรวจสอบดูอีกครั้ง
‫ฉันจะกดปุ่มและตอนนี้คุณจะเห็นว่ามันค้าง
‫และเมื่อทำเสร็จแล้วก็เปลี่ยนเป็นทำ
‫ดังนั้นไฟล์ 25 เมกะไบต์อาจเล็กเกินไป
‫มาสร้างไฟล์ 200 เมกะไบต์กัน
‫ให้ฉันตรวจสอบว่ามีอยู่ในเว็บไซต์และมีหรือไม่
‫เอาล่ะ เรามาลองอีกครั้ง
‫ตอนนี้ไฟล์จะใหญ่ขึ้นมากและจะใช้เวลาสักครู่ในการดำเนินการให้เสร็จ
‫ฉันกำลังกดปุ่ม และอย่างที่คุณเห็นตอนนี้ มันค้าง มันค้าง และมันไม่มีอะไรเลยจนกว่าการดาวน์โหลดจะเสร็จ
‫และนั่นเป็นเพราะเราอยู่ในกลุ่มที่สาม
‫ดังนั้นทั้งหน้าจอจึงหยุดนิ่งจนกว่าการดาวน์โหลดจะเสร็จสิ้น และนั่นเป็นสิ่งที่อันตรายมาก
‫คุณไม่ควรทำเช่นนั้น
‫คุณควรระมัดระวังเสมอเมื่อทำสิ่งต่าง ๆ ที่หนักในเธรดหลักหรือบนเธรด
‫UI เพราะเธรดหลักหรือเธรด UI นั้นยุ่งมากกับการอัปเดต UI
‫ดังนั้นมันจึงทำสิ่ง UI ทั้งหมดและตอนนี้ไฟล์หรือโปรแกรมของฉันก็หยุดนิ่ง
‫ค่อนข้างมาก
‫ดังนั้นฉันจะใช้ไฟล์ขนาด 200 เมกะไบต์
‫บางทีนั่นอาจเป็นทางเลือกที่ดีกว่า และนั่นจะเสร็จสิ้น และเราจะยังคงเห็นความแตกต่าง
‫ถูกต้อง.
‫ดังนั้นฉันจึงใช้ลิงก์ที่นี่ซึ่งคุณสามารถเรียกใช้หรือดาวน์โหลดไฟล์สุ่มได้
‫เลยกดดูอีกที
‫อย่างที่คุณเห็นตอนนี้ถูกแช่แข็งและจะใช้เวลาสักครู่กว่าจะเสร็จ
‫และคุณอยู่ที่นั่น
‫มันจบแล้ว.
‫ดาวน์โหลดไฟล์แล้วก็เสร็จ
‫ตกลง.
‫และสิ่งที่คุณเห็นก็คือเรากำลังดำเนินการกับเธรดที่หนึ่ง
‫นั่นคือหัวข้อหลักใช่ไหม
‫และเรากำลังดำเนินการบนเธรดหลัก และเรากำลังพยายามดาวน์โหลดบางอย่าง และเรากำลังพยายามอัปเดต
‫UI และด้วยเหตุนี้จึงใช้เวลาสักครู่ที่นี่
‫ตอนนี้คุณอาจพูดว่า เอาล่ะ มาสร้างงานเพื่อทำสิ่งนั้นกัน
‫มาสร้างงานที่รันกันเถอะ และเราจะรันโค้ดที่นี่
‫ดังนั้นฉันจะคัดลอกโค้ดนั้นไปที่นั่น
‫และตอนนี้เรามาดีบักกัน
‫ลองเพิ่มจุดดีบั๊กเล็กน้อยที่นี่
‫มาลองแก้ไขจุดบกพร่องเพื่อดูว่ามีเธรดใดบ้างที่เกี่ยวข้องจริงๆ
‫เลยจะกดเข้าไปแล้วเราก็เข้าไปอยู่ในกระทู้นี้
‫และเราอยู่ที่นั่น
‫ดังนั้นเราจึงมีเธรดผู้ปฏิบัติงานหลายรายการ
‫เรามีเธรดหลัก ซึ่งเป็นเธรดหนึ่ง และเราเห็นว่าก่อนหน้านี้เมื่อเราดำเนินการบางอย่าง
‫ดังนั้นเราจึงมีเธรดหลัก จากนั้นเราจึงเรียกใช้งานซึ่งมีเธรดเช่นกัน และเราอยู่ในเธรดที่ห้า
‫คุณจะเห็นว่าเธรดที่ห้าคือเธรดของผู้ปฏิบัติงาน และนั่นคือเธรดที่เรามีที่นี่
‫ไปที่ขั้นตอนต่อไป
‫เรายังคงอยู่ที่ เอ่อ การดำเนินการ หรือยังคงอยู่ที่เธรดที่ห้า
‫แล้วมาทำกันใหม่
‫ยังคงเป็นกระทู้ที่ห้า
‫และตอนนี้เรากำลังพยายามทำอะไรบางอย่าง
‫ดังนั้นเราจึงพยายามอัปเดตปุ่มของฉัน
‫เสร็จแล้ว.
‫และไปที่ขั้นตอนต่อไปอีกครั้ง
‫และอย่างที่คุณเห็น แอปพลิเคชันของฉันค้าง
‫มันคือการประเมินนิพจน์ ปุ่มของฉัน
‫ดังนั้นเราจึงรออีกครั้ง
‫มีความสุขมากสำหรับมัน
‫และอย่างที่คุณเห็น คุณผู้หญิง ว่าเราอยู่ใน Operation Exception
‫เธรดที่เรียกไม่สามารถเข้าถึงวัตถุได้เนื่องจากเธรดอื่นเป็นเจ้าของ
‫นั่นหมายความว่าอย่างไร?
‫หมายความว่าปุ่มของฉันเป็นของเธรดอื่น
‫และโดยเธรดใด
‫มันเป็นของเธรด UI ซึ่งเป็นเธรดหลักของเรา
‫ดังนั้นเธรดหลักจึงมีหน้าที่ดูแลองค์ประกอบ UI ทั้งหมดเพื่อไม่ให้หยุดนิ่ง
‫สิ่งสำคัญคือ UI จะตอบสนองเสมอ และในกรณีนี้จะไม่ตอบสนองอีกต่อไป เนื่องจากเรากำลังพยายามเข้าถึงโค้ดบรรทัดนี้
‫แม้ว่าจะไม่ได้อยู่ในเธรดที่ถูกต้องก็ตาม
‫เราอยู่ในเธรดที่ 5 และกำลังพยายามเข้าถึงบางสิ่งที่เป็นของเธรดที่หนึ่ง และนั่นคือสิ่งที่ไม่ถูกต้อง
‫ดังนั้นเราจึงได้รับข้อยกเว้นการดำเนินการที่ไม่ถูกต้องที่นี่ และเราจำเป็นต้องค้นหาวิธีแก้ไขปัญหาอื่นเพื่อจัดการกับสิ่งนั้น
‫และโดยทั่วไปเป็นแนวคิดของหัวข้อต่างๆ
‫โดยทั่วไปแล้ว คุณต้องระวังเมื่อคุณทำงานกับเธรดต่าง ๆ และกับวัตถุต่าง ๆ
‫หากเธรดอื่นเป็นเจ้าของอ็อบเจ็กต์ คุณจะไม่สามารถเปลี่ยนแปลงหรือแก้ไขเธรดเหล่านั้นได้
‫นั่นคือสิ่งที่คุณต้องตระหนัก
‫แล้วเราจะทำได้อย่างไร?
‫โดยทั่วไปแล้วให้หยุดแอปก่อนแล้วไปที่ปุ่ม
‫ดังนั้นฉันจึงสร้างปุ่มที่นี่และฉันต้องการตรวจสอบปุ่ม
‫เลยกด control หรือ control ค้างไว้แล้วกดที่ปุ่ม
‫ดังนั้นปุ่มจึงสืบทอดจากฐานปุ่ม ซึ่งเป็นการควบคุมเนื้อหาที่สืบทอดมาจากการควบคุม จากองค์ประกอบเฟรมเวิร์กจากองค์ประกอบ
‫UI
‫ซึ่งเป็นอ็อบเจกต์ที่มองเห็นได้ ซึ่งเป็นอ็อบเจกต์การพึ่งพา ออบเจกต์โปรแกรมเลือกจ่ายงาน และที่เราเป็น จึงเป็นออบเจ็กต์ของผู้มอบหมายงาน
‫และในที่นี้ก็แค่ตรวจสอบการเข้าถึงและยืนยันแกน X
‫นี่คือออบเจกต์โปรแกรมเลือกจ่ายงาน และเรากำลังใช้โปรแกรมเลือกจ่ายงานที่นี่ และโปรแกรมเลือกจ่ายงานมีตัวแปร เหตุการณ์
‫และอื่นๆ มากมาย
‫ทำไมฉันแสดงให้คุณเห็นว่า?
‫ก็เพราะว่าเราจะใช้โปรแกรมเลือกจ่ายงานเพื่อจัดการเธรดของเราสำหรับปุ่มของฉัน
‫แล้วมาทำอะไรที่นี่.
‫ฉันต้องการปุ่มของฉันที่จุดโปรแกรมเลือกจ่ายงานเพื่อให้ได้รับโปรแกรมเลือกจ่ายงานเธรดของ windows ระบบ windows dot threading
‫วัตถุโปรแกรมเลือกจ่ายงานจุดเชื่อมโยง
‫ตอนนี้เราพบว่าเธรดใดที่เป็นของปุ่มของเรา หรืออันที่จริงแล้ว เธรดใดที่เป็นปุ่มของเรา
‫ลองตรวจสอบโปรแกรมเลือกจ่ายงานและที่นี่ฉันเรียกใช้การดำเนินการที่ระบุแบบอะซิงโครนัสบนเธรดที่ระบบ
‫windows threading โปรแกรมเลือกจ่ายงานเชื่อมโยงกับ
‫นั่นคือสิ่งที่ฉันกำลังพูดถึง สิ่งที่เราต้องทำ
‫ไปทำกันต่อเถอะ มารันโค้ดที่นี่กัน
‫ดังนั้นฉันจะปิดมันที่ด้านล่างที่นั่น
‫และตอนนี้ คุณสามารถเห็นแล้วว่าฉันสามารถดำเนินการต่อและพูดว่า โอเค เนื้อหาปุ่มของฉันบอกว่าเสร็จแล้ว
‫และฉันจะใช้การดีบั๊กอีกครั้งเพื่อดูว่าฉันอยู่ในเธรดใดในตอนนี้
‫เลยลองรันโค้ดอีกครั้ง
‫ตอนนี้ให้กดปุ่ม
‫และอย่างที่คุณเห็น เราอยู่ที่นี่แล้ว
‫และตอนนี้ก็ต้องประเมินโหลดอีกครั้งเพื่อที่เราจะได้อยู่ในเธรดที่ห้า
‫นี่คือที่ที่เราทำการดีบัก
‫จากนั้นเราไปที่เธรดถัดไปหรือบรรทัดถัดไป
‫บรรทัดถัดไปจากนั้น UI ก็กลับมาเป็นปกติ
‫ที่ไหน?
‫ในนี้.
‫และตอนนี้เราสามารถไปยังขั้นตอนต่อไปได้
‫ดังนั้นเราจึงอยู่ในดิสแพตเชอร์ และนี่คือสิ่งที่ฉันต้องการแสดงให้คุณเห็นจริงๆ
‫ลองตรวจสอบดู
‫ไปที่ windows และดู debug console ซึ่งเป็นเอาต์พุตเพื่อให้เราระบุเธรดที่ห้าแล้วจึงบอกว่าเธรดที่หนึ่ง
‫นี่คือเธรดที่หนึ่ง และนั่นคือเธรดที่ห้า
‫ดังนั้นเจ้าของปุ่มอย่างที่คุณเห็นคือเธรดที่หนึ่ง
‫และเพื่อให้ชัดเจนขึ้นอีกหน่อย เราสามารถบวกมันเข้ากับบรรทัดของเราตรงนี้ได้
‫เธรดที่หนึ่งหรือหมายเลขเธรดคนธรรมดาเป็นเจ้าของปุ่มของฉันดังนั้นตอนนี้เราจะชัดเจนขึ้นเล็กน้อย
‫เรียกใช้อีกครั้งแล้วจึงควรแสดงอย่างถูกต้อง
‫นี่คือผลลัพธ์และไม่มีอะไรน่าสนใจเลย
‫เรากดปุ่มและคุณจะเห็นเธรดที่ 5 ถูกดำเนินการ จากนั้นระบบจะเริ่มดาวน์โหลด
‫และเมื่อเสร็จแล้ว เมื่อเสร็จแล้ว มันบอกว่า ที่นี่ เธรดที่หนึ่งเป็นเจ้าของปุ่มของฉัน
‫เลยกดดูอีกที
‫และตอนนี้ อย่างที่คุณเห็น ปุ่มยังคงทำงานและยังคงอัปเดตอยู่
‫นั่นเป็นสิ่งที่ดี
‫และนั่นเป็นวิธีการหนึ่ง
‫อย่างไรก็ตาม มีอีกวิธีหนึ่ง และฉันจะแสดงให้คุณเห็นอีกวิธีหนึ่ง ซึ่งเป็นวิธีแก้ปัญหาที่ต้องการ
‫ฉันจะคัดลอกสิ่งนี้ คลิกปุ่มของฉัน
‫ฉันจะเรียกมันว่าปุ่มของฉันคลิกเพื่อไม่ให้รบกวน
‫และตอนนี้ฉันจะบอกว่าฉันอยู่นอกเธรดไหน
‫แล้วนี่กระทู้ไหน?
‫ฉันต้องการคลิกที่ปุ่ม
‫ดีฉันควรจะอยู่ในหนึ่งสีแดงแล้ว
‫ฉันจะใช้การรอเรียกใช้งานและงานนั้นควรเป็นงานแบบอะซิงโครนัส
‫ดังนั้นเราจึงจำเป็นต้องเพิ่มคีย์เวิร์ด async ที่นี่
‫ตอนนี้ Visual Studio ยังคงไม่ค่อยพอใจ ดังนั้นฉันจึงต้องทำให้วิธีนี้เป็นแบบอะซิงโครนัส
‫ดังนั้นการคลิกปุ่มของฉันตอนนี้จะเป็นวิธีการของปุ่มแบบอะซิงโครนัสซึ่งจะรองานเฉพาะให้ทำงานแบบอะซิงโครนัส
‫และสิ่งที่ฉันทำในที่นี้คือ ฉันเพียงแค่ดาวน์โหลดไฟล์นี้อีกครั้ง และแทนที่จะใช้โปรแกรมเลือกจ่ายงาน
‫สิ่งที่ฉันทำได้ตอนนี้คือ ฉันสามารถอัปเดตปุ่มของฉันนอกงานนี้ได้
‫ดังนั้นฉันจะไปทำข้างนอกที่นี่
‫ฉันจะพูดเนื้อหาปุ่มของฉันและจะพูดอะไรบางอย่างเช่นการดาวน์โหลดเสร็จสิ้น
‫แค่นั้นแหละ.
‫ดังนั้น แทนที่จะใช้โปรแกรมเลือกจ่ายงาน ซึ่งเป็นวิธีแก้ปัญหาเล็กน้อย ฉันทำให้มันเป็นแบบอะซิงโครนัส ดังนั้นตอนนี้ก็ควรจะทำงานได้ดีเช่นกัน
‫ตอนนี้ เพื่อทดสอบว่า ฉันจะเปลี่ยนวิธีการที่นี่เพื่อคลิกวิธีการเพื่อคลิกปุ่ม
‫มิฉะนั้น วิธีนี้จะไม่ถูกดำเนินการ
‫มาทำกัน
‫และบางทีเราอาจจะเสริมด้วยว่าเราอยู่หัวข้อไหน
‫ดังนั้นหมายเลขเธรดจึงก่อนรองาน
‫แล้วอันนี้ก็อยู่หลังงานรอและอีกอันจะอยู่ระหว่างงานเรื่องน้ำหนัก
‫ทีนี้มาเรียกใช้กันใหม่
‫มากดปุ่มของเรากันเถอะ
‫และที่นี่คุณเห็นก่อนงาน
‫นั่นคืออันดับหนึ่ง
‫จากนั้นระหว่างงานน้ำหนักที่เป็นเธรดที่สอง
‫และหลังจากงานเรื่องน้ำหนัก ก็กลับมาเป็นที่หนึ่งอีกครั้งและเราก็ดาวน์โหลดเสร็จแล้ว
‫นั่นเป็นแนวทางที่แตกต่างออกไป
‫มันใช้ได้ผลดีเช่นกันและนั่นก็เป็นวิธีที่ดีกว่าด้วยซ้ำ
‫ไม่ต้องไปเช็คว่าผมอยู่กระทู้ไหน?
‫แต่คุณสร้างเธรดอื่นที่คุณทำสิ่งนี้ แต่คุณทำให้มันมีน้ำหนักด้วย
‫ดังนั้นคุณจึงทำให้มันไม่ตรงกัน
‫ตอนนี้ สิ่งเล็กน้อยที่ฉันต้องการแสดงให้คุณเห็นเช่นกันคือเว็บเบราว์เซอร์
‫สิ่งที่ผมจะทำตรงนี้คือ ผมจะลดขนาดของปุ่มลง
‫ฉันจะวางไว้ที่มุมซ้ายบน และฉันจะใช้เว็บเบราว์เซอร์
‫ฉันจะลากมันเข้าไปแล้วทำให้มันใหญ่ขึ้นอีกหน่อย
‫ตอนนี้เราก็แค่มีเว็บเบราว์เซอร์นี้ และมันควรแสดงให้เราเห็นด้านที่เราอยู่
‫ดังนั้นสิ่งที่จะเกิดขึ้นคือทุกครั้งที่ฉันกดปุ่ม ฉันจะดาวน์โหลดเว็บไซต์เฉพาะซึ่งฉันจะกำหนดด้วยตนเอง
‫นี่เป็นเพียงตัวอย่างเล็กๆ น้อยๆ ที่จะเสริมสิ่งที่เราได้เห็นจนถึงตอนนี้
‫ฉันจะไม่เข้าไปในเว็บเบราว์เซอร์เต็มรูปแบบ
‫ฉันจะไม่แสดงให้คุณเห็นว่าต้องทำอย่างไร
‫คุณสามารถไปข้างหน้าและลองด้วยตัวเอง
‫ฉันจะแสดงให้คุณเห็นว่าตอนนี้คุณสามารถใช้ HTML ที่คุณดาวน์โหลดจากลิงก์เฉพาะนี้
‫ซึ่งฮาร์ดโค้ดไว้ได้อย่างไร
‫และเพียงแค่ใช้สิ่งนั้นหรือแสดงสิ่งนั้นในเว็บเบราว์เซอร์
‫ดังนั้น https google คอม
‫แล้วจะเกิดอะไรขึ้นเมื่อผมกดปุ่ม google คอมจะถูกดาวน์โหลด
‫ในการที่จะทำอย่างนั้นได้ ฉันต้องมีวิธีการเฉพาะ และฉันจะไม่พิมพ์มันเอง ฉันจะคัดลอกและวางในนี้
‫ดังนั้นวิธีการนี้ในการเปลี่ยนแปลง HTML จะถูกเรียกเมื่อใดก็ตามที่คุณสมบัติการพึ่งพาจะมีการเปลี่ยนแปลง
‫สิ่งที่ฉันจะพูดในที่นี้คือ HTML การเปลี่ยนแปลงต้องการออบเจกต์การพึ่งพาและการเปลี่ยนแปลงคุณสมบัติการพึ่งพาเป็นอาร์กิวเมนต์เหตุการณ์ซึ่งเรียกว่า
‫E
‫และที่นี่ฉันแค่สร้างเว็บเบราว์เซอร์ซึ่งจะนำออบเจ็กต์การพึ่งพานั้นมาใช้เป็นเว็บเบราว์เซอร์
‫แล้วถ้าเว็บเบราว์เซอร์ไม่เป็นโมฆะ ให้ไปที่สตริงเฉพาะซึ่งจะเป็นค่าใหม่เป็นสตริง
‫ดังนั้นไม่ว่าอาร์กิวเมนต์การพึ่งพาเหล่านั้นจะเป็นอย่างไร อาร์กิวเมนต์เหตุการณ์การเปลี่ยนแปลงคุณสมบัติคือที่ที่ฉันได้รับสตริง
‫นั่นเป็นเพียงแค่สิ่งที่จำเป็นต้องแสดงบนเว็บเบราว์เซอร์เท่านั้น
‫ดังนั้นฉันจะทำมันด้วยวิธีที่ง่ายกว่า แต่ปัญหาคือ มันไม่ง่ายเลยที่จะทำอย่างนั้น
‫ดังนั้นจึงไม่มีวิธีที่ง่ายกว่าหรือวิธีที่ง่ายกว่านั้นมากมาย
‫นั่นคือแนวทางโดยทั่วไปที่คุณจะต้องทำที่นี่
‫ดังนั้น แทนที่จะอัปเดตปุ่มเมื่อดาวน์โหลดเสร็จแล้ว ฉันต้องการอัปเดตเว็บเบราว์เซอร์ ดังนั้นเว็บเบราว์เซอร์จึงต้องการชื่อ
‫ดังนั้นฉันจะตั้งชื่อเว็บเบราว์เซอร์ และฉันจะเรียกมันว่าเว็บเบราว์เซอร์ของฉัน
‫ทีนี้ เว็บเบราว์เซอร์ ฉันจะเรียกมันว่าที่นี่หรือแก้ไขที่นี่จริงๆ
‫สิ่งที่ฉันต้องการทำคือต้องการตั้งค่าเบราว์เซอร์นั้นและต้องการตั้งค่าบางอย่าง
‫และเนื่องจากคุณสามารถเห็นได้ว่าเราต้องการคุณสมบัติการพึ่งพาและวัตถุที่เป็นค่า
‫แล้วฉันจะได้มันมาได้อย่างไร?
‫ฉันจะได้สิ่งนั้นจากที่ไหน?
‫มีหลายสิ่งหลายอย่างที่นี่
‫หนึ่งในนั้นคือเราต้องการคุณสมบัติการพึ่งพา ดังนั้นมาสร้างกัน
‫มาวางไว้ที่ด้านบนนี้กันเถอะ
‫และอีกครั้ง ฉันจะคัดลอกและวาง
‫ฉันจะแสดงให้คุณเห็นว่ามันมีลักษณะอย่างไรและมันทำอะไร
‫ดังนั้นจึงเป็นคุณสมบัติการพึ่งพาแบบอ่านอย่างเดียวที่เรียกว่าคุณสมบัติ HTML
‫และเราลงทะเบียนมัน
‫เราลงทะเบียนด้วย HTML
‫อย่างที่คุณเห็น มันต้องมีชื่อ ชื่อสตริง HTML จากนั้นประเภทพร็อพเพอร์ตี้ ประเภทเจ้าของ และข้อมูลเมตาของพร็อพเพอร์ตี้
‫นั่นคือสิ่งที่เราได้สัมผัสเมื่อทำงานกับคุณสมบัติการพึ่งพาในบท WPF
‫ที่นี่ฉันเพิ่งสร้างด้วย HTML ประเภทคือเป็นสตริง
‫เจ้าของคืออะไร?
‫เป็นหน้าต่างหลัก
‫คลาสของเราที่นี่และข้อมูลประเภทใดหรือข้อมูลใดที่ฉันต้องการมอบให้
‫และฉันให้ข้อมูลเมตาที่เปลี่ยนแปลงใน HTML
‫แล้วมันหมายความว่าอย่างไร?
‫เมื่อใดก็ตามที่เราตั้งค่าคุณสมบัติ HTML บน HTML การเปลี่ยนแปลงจะถูกเรียก
‫และนั่นคือวิธีนี้ที่เราจะเรียกว่า
‫ตอนนี้สิ่งที่เราสามารถทำได้คือเราสามารถตั้งค่าเบราว์เซอร์ของฉันได้ดังต่อไปนี้
‫เราสามารถพูดคุณสมบัติ HTML และตั้งค่าด้วย HTML ได้
‫ในการใช้ HTML เราจำเป็นต้องแก้ไขส่วนนี้เล็กน้อยหรือมีวิธีแก้ปัญหาเล็กน้อย
‫อันที่จริง ฉันจะเรียกมันว่า HTML ของฉันแบบนั้น และฉันต้องสร้างตัวแปรที่นี่
‫แค่จะเป็นสตริง http l ของฉันซึ่งกำลังจะพูดว่า blah แค่สตริงที่มีข้อความโง่ที่นี่ ไม่มีอะไรพิเศษ
‫แต่เมื่อดาวน์โหลดเสร็จแล้ว เราก็จะได้ผลลัพธ์เป็นสตริง HTML ของเรา
‫ฉันไม่สามารถพูด HTML ที่นี่ได้ เนื่องจากสตริงนี้สร้างขึ้นในเครื่อง และฉันไม่สามารถสร้างได้
‫หรืออยู่ภายในขอบเขตของงานของเราที่นี่ และฉันไม่สามารถสร้างมันขึ้นมาภายนอกได้
‫นั่นเป็นเหตุผลที่ฉันต้องมีวิธีแก้ปัญหาเล็กๆ น้อยๆ นี้
‫ตอนนี้ฉันบอกได้เลยว่า HTML ของฉันคือ HTML
‫อย่างนี้.
‫ตัวแปรที่นี่ ซึ่งอยู่ในขอบเขตของเว็บเบราว์เซอร์ที่เราตั้งค่าไว้ที่นี่
‫นั่นเป็นเหตุผลที่ฉันสามารถไปข้างหน้าและตั้งค่าที่นี่
‫ดังนั้นภายในขอบเขตของงานที่รอเราอยู่
‫แน่นอนว่าเราต้องจบบรรทัดนี้
‫นั่นคือวิธีที่คุณสามารถตั้งค่าเว็บเบราว์เซอร์ได้
‫ไม่เป็นไร.
‫เป็นวิธีแก้ปัญหาเล็กน้อย แต่ใช้งานได้ เรามาทดสอบกัน
‫มารันโค้ดของเรากัน
‫ที่กดปุ่ม
‫และเราอยู่ที่นั่น
‫ดังนั้นเราจึงมีข้อผิดพลาดของสคริปต์มากมาย แต่นั่นเป็นเพราะเรายังไม่ได้พูดอะไรอีก
‫แต่อย่างที่คุณเห็น ตอนนี้เราอยู่ที่ Google ดังนั้นเราจึงสามารถไปที่รูปภาพ ไปที่ Google Maps และอื่นๆ
‫ตอนนี้เราได้สร้างเบราว์เซอร์ขนาดเล็กของเราซึ่งนำเราไปยัง Google
‫ได้เลย ใจเย็นๆ
‫อย่างที่ฉันพูดไป ฉันจะไม่ลงลึกในเบราว์เซอร์และสิ่งต่างๆ มากเกินไป และฉันก็ไม่อยากเจาะลึกเข้าไปในหัวข้อเหล่านั้นด้วย
‫แต่นั่นเป็นเพียงวิธีที่คุณต้องตั้งค่า
‫นั่นเป็นเรื่องเล็กน้อย เอ่อ ใช่ การตั้งค่าเล็กน้อยที่คุณต้องทำ
‫ดังนั้นคุณต้องมีวิธีนี้ คุณต้องมีคุณสมบัติการพึ่งพานี้ จากนั้นคุณสามารถตั้งค่าเบราว์เซอร์ของคุณด้วยคุณสมบัติ
‫HTML ซึ่งเป็นคุณสมบัติการพึ่งพาของเราและโค้ด HTML บางส่วนซึ่งเป็นรหัส HTML ที่เรา ดาวน์โหลดจาก Google
‫ไม่เป็นไร.
‫สรุปง่ายๆ อีกครั้ง คิดอย่างไรกับการใช้กระทู้ต่างๆ กัน?
‫คุณมีเธรดหลักที่จัดการ UI และหากคุณต้องการทำอะไรที่หนักหน่วงซึ่งใช้เวลาสักครู่ในการดำเนินการเช่นดาวน์โหลดจากเว็บเช่นคัดลอกบางสิ่งจากไฟล์หนึ่งไปยังอีกไฟล์หนึ่งหรือ
‫การทำงานกับฮาร์ดไดรฟ์หรืออะไรก็ตาม
‫นั่นเป็นเหตุผลที่ควรทำในเบื้องหลัง
‫ดังนั้นคุณจึงสร้างงานอื่นหรือเธรดอื่นที่ดูแลเรื่องนั้น
‫ดังนั้นที่นี่ เราจึงสร้างงานแบบอะซิงโครนัสซึ่งทำงานในเบื้องหลัง และเมื่อเสร็จแล้ว เราสามารถดำเนินการที่เหลือได้
‫ดังนั้นมันจะไม่หยุดเธรดหลักของเรา UI ของเรายังคงทำงานได้อย่างถูกต้อง และนั่นคือทั้งหมดที่เกี่ยวกับ
‫ไม่เป็นไร.
‫แล้วพบกันใหม่ใน.