मैं एक बहु आवेदन का विकास करने के लिए है, जहां कई धागा होगा, प्रत्येक थ्रेड कस्टम ईवेंट लॉग उत्पन्न करता है और कतार में बचाया (माइक्रोसॉफ्ट नहीं MSMQ) में बचाया की जरूरत है।एकाधिक उत्पादकों, एकल उपभोक्ता
एक और धागा होगा जो कतार से लॉग डेटा पढ़ता है और फ़ाइल में लॉग जानकारी को सहेजने के लिए कुछ जानकारी के साथ इसका उपयोग करता है। असल में यहां हम कई निर्माता एकल उपभोक्ता प्रतिमान लागू कर रहे हैं।
शरीर के किसी भी मुझे सुझाव सकते हैं कि कैसे सी में इस लागू करने के लिए ++ या सी #।
धन्यवाद,
हो सकता है कि यह ऑनस्यूमर के लिए अतिरिक्त स्थिति प्राप्त करने के लिए उपयोगी होगा '! (शटडाउन || LogQueue।())' (यह नहीं पता कि यह कैसे सी # में व्यक्त किया गया है)।या, अगर LogQueue को रोकने का कोई तरीका है, तो केवल इसका उपयोग करें। –
glglgl
आपके पास निर्माता कॉल 'CompleteAdding' हो सकता है, जो संग्रह को जोड़ने के लिए पूर्ण रूप से चिह्नित करेगा (यानी कोई और आइटम जोड़ा जा सकता है)। उपभोक्ता तब 'का उपयोग कर सकता है (LogQueue.TryTake (आउट रिक, टाइमआउट। अनंत)), जिसका अर्थ है कि यह संग्रह खाली कर देगा और फिर बाहर निकल जाएगा। अगर संग्रह जोड़ने के लिए पूरा हो गया है और कतार खाली है तो 'TryTake'' गलत 'वापस आ जाएगा। –
@JimMischel उपभोक्ता एक आइटम को हटाने के बाद, कुछ प्रसंस्करण करें, आप कॉलिंग प्रक्रिया के परिणाम कैसे वापस कर सकते हैं? – gdp