2011-08-24 30 views
6

मैंने सी # में एक परीक्षा आवेदन किया है जिसमें परीक्षा लेने के दौरान एक टाइमर है, उम्मीदवार मानते हैं कि उम्मीदवार विंडोज के न्यूनतम बटन (माउस को छोड़कर) 1 मिनट और 30 सेकंड में दबाए रखता है, समय रुकता है भले ही उम्मीदवार 10 मिनट के लिए माउस दबाए रखता है, लेकिन जब माउस जारी किया जाता है तो समय बहुत ही दूसरे से शुरू होता है जहां इसे 1 मिनट और 30 सेकंड रोक दिया जाता है। मैं टाइमर को किसी भी विराम के बिना जारी रखना चाहता हूं।सी # परीक्षा आवेदन टाइमर धोखाधड़ी मुद्दा

+2

जाहिर है आप यूआई धागा कि यूआई सूत्र में नहीं किया जाना चाहिए में कुछ कर रहे हैं से स्वतंत्र रूप से काम करने के लिए माना जाता है System.Threading.Timer वर्ग का प्रयोग करें। कृपया अपना कोड पोस्ट करें। –

उत्तर

4

आप किस टाइमर घटक का उपयोग कर रहे हैं? System.Windows.Forms.Timer या System.Threading.Timer?

मुझे संदेह है कि S.W.F.TimerSetTimer एपीआई कॉल का उपयोग करता है जो विंडो संदेशों का उपयोग करता है जो आप जो देख रहे हैं उसे समझाएंगे, एक थ्रेडेड टाइमर बेहतर होगा।

आप, साथ ही, एक धागा इस्तेमाल कर सकते हैं सूत्र में एक DateTime.UtcNow और हर 100ms या कुछ और की दुकान, एक और DateTime.UtcNow हो और बीता हुआ समय के लिए TimeSpan की जाँच करें।

1

जब आप टाइमर की Elapsed घटना में DateTime.UtcNow - startTime परीक्षण शुरू करते हैं और उस पर निगरानी करते हैं तो आप DateTime.UtcNow रिकॉर्ड कर सकते हैं। यदि अंतर आप चाहते हैं उससे बड़ा है, तो आप वहां परीक्षण समाप्त कर सकते हैं।

+3

आप अभी भी UtcNow का उपयोग करना चाहते हैं क्योंकि, संभावना नहीं है, टाइमज़ोन/डीएसटी बदल सकता है जो मूल्य को प्रभावित करेगा। – Lloyd

+0

अच्छा बिंदु @Lloyd –

2

क्योंकि कि विंडोज़ संदेशों

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