เมื่อเขียน http จัดการ / โมดูลจะมีสมาชิกที่จะใช้อินเตอร์เฟซที่เรียกว่า - บูล IsReusable
ความสำคัญของสมาชิกนี้คืออะไร? หากฉันตั้งค่าเป็นเท็จ (หรือจริง) ส่วนที่เหลือของเว็บแอปจะมีความหมายอย่างไร
เมื่อเขียน http จัดการ / โมดูลจะมีสมาชิกที่จะใช้อินเตอร์เฟซที่เรียกว่า - บูล IsReusable
ความสำคัญของสมาชิกนี้คืออะไร? หากฉันตั้งค่าเป็นเท็จ (หรือจริง) ส่วนที่เหลือของเว็บแอปจะมีความหมายอย่างไร
คำตอบ:
จุดเริ่มต้นปกติสำหรับตัวจัดการคือเมธอด ProcessRequest อย่างไรก็ตามคุณอาจมีโค้ดในตัวสร้างคลาสซึ่งรวบรวมค่าอินสแตนซ์บางค่าซึ่งมีราคาแพงในการสร้าง
หากคุณระบุ Reusable ให้เป็นจริงแอปพลิเคชันสามารถแคชอินสแตนซ์และใช้ซ้ำในคำขออื่นได้โดยเพียงแค่เรียกใช้เมธอด ProcessRequest ซ้ำแล้วซ้ำเล่าโดยไม่ต้องสร้างใหม่ทุกครั้ง
แอปพลิเคชันจะสร้างอินสแตนซ์ของตัวจัดการเหล่านี้ให้มากที่สุดเท่าที่จำเป็นในการจัดการกับโหลดปัจจุบัน
ข้อเสียคือหากจำนวนอินสแตนซ์ที่ต้องการมีมากกว่าอินสแตนซ์ที่มีอยู่ในปัจจุบันจะทำให้ต้องใช้หน่วยความจำมากขึ้น ในทางกลับกันพวกเขายังสามารถลดการใช้หน่วยความจำที่ชัดเจนเนื่องจากค่าอินสแตนซ์ของพวกเขาจะอยู่รอดรอบ GC และไม่จำเป็นต้องจัดสรรใหม่บ่อยๆ
ข้อแม้อีกประการหนึ่งคือคุณต้องแน่ใจว่าในตอนท้ายของการดำเนินการ ProcessRequest สถานะอ็อบเจ็กต์เป็นไปตามที่คุณต้องการสำหรับการร้องขออื่นเพื่อใช้อ็อบเจ็กต์ซ้ำ
นอกจากคำตอบของ AnthonyWJones แล้วหากตัวจัดการ HTTP ของคุณกลับมาtrue
เป็นไฟล์IsReusable
คุณควรให้แน่ใจว่าจะด้ายปลอดภัยอย่างเต็มที่
ไม่มีสิ่งใดในเอกสารที่ระบุว่าไม่สามารถใช้ตัวจัดการแบบใช้ซ้ำได้พร้อมกันแม้ว่าการใช้งาน Microsoft ในปัจจุบันจะดูเหมือนว่าจะใช้ซ้ำติดต่อกันเท่านั้น แต่อย่างน้อยตามทฤษฎีแล้วอินสแตนซ์ตัวจัดการเดียวสามารถใช้ซ้ำได้พร้อมกันโดยการร้องขอหลายรายการดังนั้นคุณไม่ควรพึ่งพาข้อมูลใด ๆ ที่อาจถูกแก้ไขโดยเธรดอื่น ๆ พร้อมกัน
IsReusable
ต้องการความปลอดภัยของเธรดนี้ดูเหมือนจะขัดแย้งกับการตอบสนองของ AnthonyWJones ตามที่ฉันเข้าใจย่อหน้าที่สาม (แอปพลิเคชันจะสร้างอินสแตนซ์ของ ... ) อินสแตนซ์ตัวจัดการที่ใช้ซ้ำได้จะไม่ถูกนำมาใช้ซ้ำพร้อมกัน แต่หลังจากเสร็จสิ้นการประมวลผลปัจจุบันเท่านั้น หากเป็นเช่นนั้นจริงก็ไม่จำเป็นต้องมีเธรดที่ปลอดภัย
หากคุณไม่ได้จัดเก็บสถานะใด ๆ ในอินสแตนซ์นั้น (เช่น: คุณไม่มีฟิลด์ใด ๆ (หรือที่เรียกว่า "ตัวแปรคลาส")) คุณควรนำกลับมาใช้ใหม่อย่างปลอดภัย
โดยค่าเริ่มต้นเป็นเท็จที่จะอยู่ในด้านความปลอดภัย