ในแอปพลิเคชัน ASP.Net ผู้ใช้คลิกปุ่มบนเว็บเพจจากนั้นจะสร้างอินสแตนซ์อ็อบเจ็กต์บนเซิร์ฟเวอร์ผ่านตัวจัดการเหตุการณ์และเรียกใช้เมธอดบนอ็อบเจ็กต์ วิธีนี้ไปยังระบบภายนอกเพื่อทำสิ่งต่างๆและอาจใช้เวลาสักครู่ ดังนั้นสิ่งที่ฉันต้องการจะทำคือเรียกใช้การเรียกเมธอดนั้นในเธรดอื่นเพื่อให้ฉันสามารถคืนการควบคุมให้กับผู้ใช้ด้วยข้อความ "ส่งคำขอของคุณแล้ว" ฉันมีความสุขพอสมควรที่จะทำสิ่งนี้เป็นไฟและลืมแม้ว่ามันจะดีกว่านี้หากผู้ใช้สามารถสำรวจวัตถุเพื่อดูสถานะได้
สิ่งที่ฉันไม่รู้คือถ้า IIS อนุญาตให้เธรดของฉันทำงานต่อไปแม้ว่าเซสชันผู้ใช้จะหมดอายุ ลองนึกภาพผู้ใช้เริ่มต้นเหตุการณ์และเราสร้างอินสแตนซ์อ็อบเจ็กต์บนเซิร์ฟเวอร์และเริ่มเมธอดในเธรดใหม่ ผู้ใช้พอใจกับข้อความ "ส่งคำขอของคุณแล้ว" และปิดเบราว์เซอร์ของตน ในที่สุดเซสชันผู้ใช้นี้จะหมดเวลาใน IIS แต่เธรดอาจยังคงทำงานอยู่และทำงานได้ IIS จะอนุญาตให้เธรดทำงานต่อไปหรือจะฆ่ามันและกำจัดอ็อบเจ็กต์เมื่อเซสชันผู้ใช้หมดอายุ?
แก้ไข: จากคำตอบและความคิดเห็นฉันเข้าใจว่าวิธีที่ดีที่สุดในการดำเนินการนี้คือการย้ายการประมวลผลที่ใช้เวลานานออกนอก IIS นอกเหนือจากสิ่งอื่น ๆ แล้วสิ่งนี้เกี่ยวข้องกับปัญหาการรีไซเคิลโดเมนแอป ในทางปฏิบัติฉันต้องเอาเวอร์ชัน 1 ออกจากพื้นในเวลาที่ จำกัด และต้องทำงานในเฟรมเวิร์กที่มีอยู่ดังนั้นฉันต้องการหลีกเลี่ยงเลเยอร์บริการดังนั้นความปรารถนาที่จะปิดเธรดภายใน IIS ในทางปฏิบัติ "วิ่งยาว" ที่นี่จะใช้เวลาเพียงไม่กี่นาทีและการทำงานพร้อมกันบนเว็บไซต์จะต่ำดังนั้นจึงไม่เป็นไร แต่รุ่นถัดไปจะต้องแยกเป็นชั้นบริการแยกต่างหาก