سؤال

لدي تطبيق ASP.NET مع موضوع خلفية. يبدأ الخيط عند بدء التطبيق ويتم إيقافه برشاقة عند انتهاء التطبيق. أقوم بتشغيل الموقع على مضيف مشترك. لسوء الحظ في بعض الأحيان ، لا يؤدي التطبيق إلى تشغيل حدث Application_end عندما ينتهي. أعتقد أن الخيوط ستقتل على أي حال ، لكن هذا ليس هو الحال. لدي حاليا 4 مؤشرات ترابط تعمل في الخلفية. ثلاثة من الأوقات السابقة بدأ الطلب و 1 من جلسة التطبيق الحالية. كيف يمكنني التأكد من إغلاق المواضيع عند انتهاء التطبيق؟ هل هناك طريقة للاطلاع على المواضيع للتحقق مما إذا كان يتم إعادة تعيين التطبيق أو كان تم إعادة تعيين؟ أم أن هناك طريقة للتحقق من هذه الخيوط المارقة عند بدء تشغيل التطبيق وقتلها؟ شكرا مقدما.

هل كانت مفيدة؟

المحلول

استخدم threadpool.queueUserworkItem () لتنفيذ الكود الخاص بك في الخلفية ، والتي سيتم إنهاءها عند تفريغ AppDomain. أفترض أنك تستخدم عامل خلفية ، وفقًا للعلامات ، وأقترح تجربة ذلك بدلاً من ذلك. (فكر في إضافة نموذج رمز لاستخلاص إجابات أفضل.)

Threadpool المدارة: http://msdn.microsoft.com/en-us/library/0ka9477y.aspx

خيوط المقدمة/الخلفية: http://msdn.microsoft.com/en-us/library/h339syd0.aspx

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top