में एक अलग थ्रेड पर फास्ट डेटा रिकॉर्डिंग/लॉगिंग हम एक ऐसे अनुप्रयोग को विकसित कर रहे हैं जो लगातार कई बाहरी हार्डवेयर उपकरणों से डेटा पढ़ता है। बाहरी हार्डवेयर कॉन्फ़िगरेशन के आधार पर डेटा दर 0.5 एमबी - 10 एमबी/सेकंड के बीच है।सी #
बाहरी उपकरणों का पठन वर्तमान में पृष्ठभूमिवर्कर पर किया जा रहा है। इस पृष्ठभूमिवर्क के साथ डिस्क पर अधिग्रहित डेटा लिखने का प्रयास करना एक अच्छा समाधान प्रतीत नहीं होता है, इसलिए हम यह करना चाहते हैं कि इस डेटा को फ़ाइल में लिखा जाए, और एक और थ्रेड डेटा को हटा दें और लिखें एक पंक्ति। ध्यान दें कि डेटा के लिए एक एकल निर्माता और एकल उपभोक्ता होगा।
हम इस उद्देश्य के लिए एक सिंक्रनाइज़ कतार का उपयोग करने के बारे में सोच रहे हैं। लेकिन हमने सोचा कि इस पहिया का आविष्कार पहले से ही किया जाना चाहिए, इसलिए हमें कुछ इनपुट के लिए एसओ समुदाय से पूछना चाहिए।
उन चीजों पर कोई सुझाव या टिप्पणियां जिन्हें हमें देखना चाहिए, उनकी सराहना की जाएगी।
डैनियल, क्या आपको लगता है कि हम इस उद्देश्य के लिए .NET कतारों का उपयोग कर सकते हैं? हम डेटा को पॉइंटर्स स्टोर करने के लिए ConcurrentQueue का उपयोग करने के बारे में सोच रहे हैं, लेकिन लॉगिंग शुरू करने से पहले डेटा के लिए स्मृति आवंटित करें। – SomethingBetter
आप किस प्रकार का डेटा लॉग करते हैं? वास्तव में, सरल बाइट्स, मेरा प्रश्न इस बारे में है कि यदि डेटा को पैकेट में आसानी से क्रमबद्ध किया जा सकता है और अनुक्रमिक रूप से पढ़ा जा सकता है। आप निम्न स्तर पर हैं, निम्न स्तर पर रहें। –