2011-08-24 14 views
8

मुझे एंटिटी फ्रेमवर्क और एकाधिक थ्रेड के साथ समस्याएं आ रही हैं और मैं सोच रहा हूं कि कोई समाधान है जो आलसी लोड की क्षमता रखता है। मेरी समझ से डेटा संदर्भ थ्रेड सुरक्षित नहीं है, यही कारण है कि जब मेरे पास एक ही डेटा संदर्भ का उपयोग करके एकाधिक धागे होते हैं तो मुझे विभिन्न डेटा पाठक त्रुटि मिलती है। इस समस्या का समाधान डेटाबेस से प्रत्येक कनेक्शन के लिए एक अलग डेटा संदर्भ का उपयोग करना है और फिर डेटा संदर्भ को नष्ट करना है। दुर्भाग्यवश मेरे डेटा संदर्भ को नष्ट कर रहा है तो मुझे आलसी लोडिंग करने से रोकता है।इकाई फ्रेमवर्क + एकाधिक थ्रेड + आलसी लोड

क्या मेरे पास मेरे एप्लिकेशन में एक साझा संदर्भ रखने की अनुमति देने के लिए एक पैटर्न है, लेकिन फिर भी कई धागे ठीक से संभालते हैं?

+0

ईएफ आलसी लोडिंग के साथ संयोजन में समानांतर का उपयोग करते समय हमने समान समस्याओं का अनुभव किया है। – tjrobinson

उत्तर

9

नहीं, ऐसा कोई समाधान नहीं है। बहु आवेदन में आपके विकल्प हैं:

धागा प्रति
  • प्रसंग
  • एकल उस संदर्भ के लिए प्रत्येक पहुँच के लिए तुल्यकालन के साथ unproxied अलग संस्थाओं (कोई आलसी लोड हो रहा है, कोई परिवर्तन नहीं ट्रैकिंग) के उत्पादन संदर्भ।

प्रॉक्सी संलग्न इकाइयों के साथ दूसरा दृष्टिकोण करना आपदा का तरीका है। इसे संदर्भ के साथ सभी छिपी हुई बातचीत का पता लगाने और संबंधित कोड को सिंक्रनाइज़ करने की आवश्यकता होगी। आप शायद एकाधिक स्विचिंग थ्रेड में चल रहे एकल थ्रेडेड प्रक्रिया के साथ समाप्त हो जाएंगे।

+0

+1 क्योंकि यह तकनीकी रूप से सही है, लेकिन: पूरे संदर्भ में एक संदर्भ साझा करना केवल एक थ्रेड के साथ एक समस्या है। संदर्भ काम की एक इकाई और अल्पकालिक होना चाहिए। –

+0

@ क्रेग: यह सही है। मेरा मतलब पूरे एप्लिकेशन के लिए एक संदर्भ उदाहरण नहीं था, लेकिन एकल "लॉजिकल ऑपरेशन" पर काम कर रहे कई धागे के लिए एक संदर्भ। मुझे यकीन नहीं है कि अगर इकाइयों को अलग किया जाना चाहिए तो यह अभी भी काम की इकाई है। –

+0

धन्यवाद। यही मुझे लगा कि जवाब होगा। –

संबंधित मुद्दे