c# - How many times in a day would System.DateTime.Now.Ticks % 1000 > 1000 return true? -
नवीनीकृत
एक दिन कितनी बार सिस्टम होगा दिनांकटाइम.अब। टिकटें% 1000 & gt; 1000
वापस सही है?
मैं एक प्रोग्राम लिख रहा हूँ जो एक स्थिर शब्दकोश में एक घटना की घटनाओं को इकट्ठा करता है मैं एक नियमित आधार पर लगातार भंडारण करने के लिए डिक्शनरी करना चाहता हूं, लेकिन अक्सर क्योंकि प्रत्येक सदस्य में मूल्य में परिवर्तन की दर लगातार होती है।
सह-कार्यकर्ता ने सिस्टम का सुझाव दिया। डेटटाइम.अब टीक एक यादृच्छिक संख्या के रूप में और उस नंबर पर एक मॉड कर। मुझे यकीन नहीं है कि यह कैसे तय होगा कि यह कितनी बार सच वापस करेगा।
मेरा वर्ग:
मैं एसक्यूएल 100- प्रतिदिन इश बार शब्दकोश के बारे में 1000 कुंजी के साथ 250,000,000 बार / दिन अद्यतन किया जाएगा।
सार्वजनिक स्थिर वर्ग StackTraceLogger {निजी स्थिर पढ़ने के लिए ConcurrentDictionary & lt; स्ट्रिंग, इंट & gt; डेटा = नया समवर्ती एक्सटेंशन & lt; स्ट्रिंग, इंट & gt; (); सार्वजनिक स्थिर शून्य लॉग (स्टैकट्रेस सेंट) {if (Data.ContainsKey (st.ToString ())) {var val = 0; यदि (Data.TryGetValue (st.ToString (), बाहर वाल)) {var newVal = val + 1; डेटा। ट्राईअपडेट (सेंट। टॉस्ट्रिंग (), न्यूवैल, वैल); }} और {डेटा.TryAdd (st.ToString (), 1); } // समय-समय पर एसक्यूएल में शब्दकोश लॉग इन करें (System.DateTime.Now.Ticks% 1000 & gt; 1000) {foreach (KeyValuePair & lt; स्ट्रिंग, एट & gt; एम डेटा में) {Debugger.Log (m.Value.ToString () m.Key); }}}}}
एक दिन में 86,400 सेकंड होते हैं। यदि आप प्रतिदिन 100 बार कुछ करना चाहते हैं, तो आपको प्रत्येक 864 सेकेंड में ऐसा करना होगा। ऐसा करने का सबसे आसान तरीका है कि हर 864 सेकंड में एक बार आग लगाना शुरू करना है। उदाहरण के लिए:
सिस्टम का प्रयोग करना। थ्रेडिंग; पब्लिक क्लास मायक्लस {// आप जो भी सामान हैं / टाइमर जो डेटा निजी टिमर _updateTimer अपडेट करेंगे; सार्वजनिक MyClass () {// initialization // टाइमर _updateTimer = नया टाइमर प्रारंभ करें (अपडेटटिमरप्रक्र, रिक्त, टाइमस्पेन.फॉर्मसेकंड्स (864), टाइमस्पेन.फ्रॉस्सेकंड्स (864)); } निजी शून्य UpdateTimerProc (ऑब्जेक्ट स्टेट) {// do SQL अपडेट यहाँ}}
ध्यान रखें कि UpdateTimerProc
को एक अलग थ्रेड पर निष्पादित किया जाएगा जब टाइमर आग - प्रत्येक 864 सेकेंड में एक बार।
Comments
Post a Comment